Entrée et sortie
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 20 sur 71.
Un déclencheur envoie deux messages supplémentaires. OnTriggerExit(Collider other) s’exécute une fois, à l’étape de physique où le chevauchement prend fin, quelle qu’en soit la raison. OnTriggerStay(Collider other) s’exécute à chaque étape de physique tant que le chevauchement dure, 50 fois par seconde par défaut, comme FixedUpdate(). Les trois reçoivent le même Collider.
Ce courant ascendant soulève tout ce qui flotte à l’intérieur et signale quand cela en sort :
public float lift = 15f;
void OnTriggerStay(Collider other)
{
other.attachedRigidbody.AddForce(Vector3.up * lift);
}
void OnTriggerExit(Collider other)
{
Debug.Log(other.name + " left the updraft");
}Une force doit être appliquée à une étape de physique, donc OnTriggerStay convient : la poussée est appliquée une fois par étape tant que la balle est à l’intérieur, et cesse dès qu’elle en sort. Le courant ascendant n’a pas de Rigidbody, donc chaque visiteur doit en avoir un, et attachedRigidbody n’est jamais null ici. Pour appliquer une quantité par seconde dans OnTriggerStay, multipliez par Time.deltaTime, qui correspond à la durée de l’étape, soit 0.02, pendant une étape de physique. Chaque visite déclenche un OnTriggerEnter puis, plus tard, un OnTriggerExit pour le même collider.
Défi
FacileAllume la lampe tant qu’il y a quelque chose dans la zone de chargement.
- Ajoute un champ
int inBay;. DansStart(), définislamp.enabled = false;. - Dans
OnTriggerEnter, ajoute 1 àinBayet définislamp.enabled = true;. - Dans
OnTriggerExit, soustrais 1 deinBayet éteins la lampe uniquement lorsque sa valeur est 0.
Appuie sur « Jouer » et pousse les caisses pour les faire entrer et sortir : la lampe reste allumée jusqu’à ce que la zone soit vide. Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class LoadingBay : MonoBehaviour
{
public Light lamp;
// La lampe est allumée tant qu’il y a quelque chose dans la baie, et éteinte quand la baie est vide
}
Toutes les leçons de Physique et gameplay
1Corps rigide
Gravité et massePousser avec AddForceSauter avec une impulsionFixedUpdate pour la physiqueVitesseCorps cinématiquesRécapitulatif : plateforme de lancement4Coroutines
InvoquerInvokeRepeating, CancelInvokeVotre première coroutineBoucles dans les coroutinesArrêter les coroutinesRécapitulatif : compte à rebours7Rotation
Angles d’EulerQuaternionsRegardez dans la direction où vous vous déplacezTourner en douceurRécapitulatif : tourelle10Projet : Évasion de l’arène
L’arèneLes chasseurs2Collisions
OnCollisionEnterQu’est-ce que j’ai touché ?Se briser à l’impactRester au solRebond et frictionFormes des collidersRécapitulatif : mur destructible5Projet : Course aux pièces
La balle roulanteDes pièces à ramasser3Déclencheurs
Colliders déclencheursOnTriggerEnterObjets à ramasserLes caisses gardent le resteZones mortellesEntrée et sortieRécapitulatif : clé et porteEntraînez-vous par vous-même : Playground Unity