Menu
CoddyTech

OnTriggerEnter

Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 16 de 63.

void OnTriggerEnter(Collider other) se ejecuta una vez, en el paso de física en que otro collider empieza a solaparse con un trigger. other es ese collider, así que other.name, other.gameObject y other.CompareTag("Player") te indican qué entró. Unity lo llama en los scripts de ambos objetos: en el trigger, other es el visitante, y en el visitante, other es el trigger.

Esta línea de meta reacciona al jugador y a nada más, así que una pelota que la atraviesa rodando no registra nada:

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        Debug.Log(other.name + " crossed the finish line");
    }
}

El parámetro debe ser un Collider. Si se escribe como void OnTriggerEnter(Collision collision), el script sigue compilándose, porque para C# es un método ordinario. Unity comprueba el parámetro, registra un Script error: OnTriggerEnter que dice This message parameter has to be of type: Collider y nunca llama al método. Collision corresponde a OnCollisionEnter, donde dos cuerpos sólidos se encuentran en un punto de contacto. Un trigger no tiene ningún contacto que comunicar, solo el collider, así que recibe un Collider.

challenge icon

Desafío

Fácil

Los vehículos atraviesan la puerta de peaje, que es un activador. El script Driver los mueve y ya está terminado. Escribe el script TollGate de la puerta:

  • Todos los vehículos etiquetados como Car pagan toll (3): súmalo a collected y registra el total: Toll: 3 para el primer coche y después Toll: 6.
  • Cualquier otra cosa, como el ciclista, pasa gratis y no registra nada.

Pulsa Jugar primero: la consola ya muestra un error de script relacionado con el método tal como está escrito. Corrígelo y después pulsa Comprobar.

Pruébalo tú mismo

using UnityEngine;

public class TollGate : MonoBehaviour
{
    public int toll = 3;
    int collected;

    void OnTriggerEnter(Collision collision)
    {
        // Los coches pagan el peaje; todo lo demás pasa gratis
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Física y jugabilidad