OnTriggerEnter
Fait partie de la section Physique et gameplay du Journey Unity de Coddy. Leçon 16 sur 71.
void OnTriggerEnter(Collider other) s’exécute une fois, lors de l’étape de physique où un autre collider commence à chevaucher un déclencheur. other est ce collider : other.name, other.gameObject et other.CompareTag("Player") t’indiquent donc ce qui est entré. Unity l’appelle sur les scripts des deux objets : sur le déclencheur, other est le visiteur, et sur le visiteur, other est le déclencheur.
Cette ligne d’arrivée réagit au joueur et à rien d’autre, donc une balle qui la franchit en roulant ne produit aucune trace :
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
Debug.Log(other.name + " crossed the finish line");
}
}Le paramètre doit être un Collider. Écrit sous la forme void OnTriggerEnter(Collision collision), le script compile tout de même, car pour C#, il s’agit d’une méthode ordinaire. Unity vérifie le paramètre lui-même, consigne une erreur Script error: OnTriggerEnter indiquant This message parameter has to be of type: Collider, et n’appelle jamais la méthode. Collision est associé à OnCollisionEnter, où deux corps solides se rencontrent en un point de contact. Un déclencheur n’a aucun contact à signaler, seulement le collider : il reçoit donc un Collider.
Défi
FacileCorrige la méthode de la barrière de péage, puis prélève le péage auprès des voitures.
- Appuie sur « Jouer » : la Console affiche une erreur concernant la méthode. Remplace-la par
void OnTriggerEnter(Collider other). - À l’intérieur, lorsque
other.CompareTag("Car"), ajoutetollàcollectedet consigne"Toll: " + collected. Le cycliste passe gratuitement.
Appuie sur « Jouer » : la Console affiche Toll: 3, puis Toll: 6. Ensuite, appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class TollGate : MonoBehaviour
{
public int toll = 3;
int collected;
void OnTriggerEnter(Collision collision)
{
// Les voitures paient le péage ; tout le reste passe gratuitement
}
}
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