Menu
CoddyTech

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.

challenge icon

Défi

Facile

Corrige la méthode de la barrière de péage, puis prélève le péage auprès des voitures.

  1. Appuie sur « Jouer » : la Console affiche une erreur concernant la méthode. Remplace-la par void OnTriggerEnter(Collider other).
  2. À l’intérieur, lorsque other.CompareTag("Car"), ajoute toll à collected et 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

Entraînez-vous par vous-même : Playground Unity