¿Cómo funciona OnTriggerExit en Unity? Aplicaciones

Por GameDevTraum

Introducción

En este artículo vamos a ver cómo funciona el método OnTriggerExit en Unity. Esta función nos permitirá detectar cuándo el Collider de un GameObject que previamente se encontraba en el interior de un Trigger, deja de estar en contacto con éste.

OnTriggerEnter y OnTriggerExit son métodos muy similares pero cambia el momento en el que sucede la ejecución de estos métodos, conocer exactamente estos momentos nos permitirá construir soluciones.

💖Únete al canal para dar tu apoyo a la página💖

Antes de pasar a estudiar a fondo este método dejo un link a este artículo perteneciente a mi Serie Fundamental de Unity, aquí muestro un ejemplo práctica de OnTriggerEnter y OnTriggerExit.

En este caso utilizamos OnTriggerEnter para abrir la puerta y OnTriggerExit para cerrar la puerta.

OnTriggerExit en Unity

El método OnTriggerExit se encuentra definido en la clase MonoBehaviour. Es decir que cualquier nuevo Script por defecto lo va a tener por herencia.

Para que ocurra la ejecución de OnTriggerExit deben darse varias condiciones.

La primera es que deben haber dos GameObjects con Colliders involucrados, uno de los Colliders debe estar en modo Trigger, para esto se debe tildar la casilla “Is Trigger” en el inspector.

Además al menos uno de los GameObjects involucrados debe tener asignado un componente RigidBody, porque OnTriggerExit está relacionado a la parte física del motor.

Declarar OnTriggerExit

El hecho de que esté definido en la clase MonoBehaviour y un nuevo Script por defecto la implemente no significa que automáticamente tendremos a OnTriggerExit en nuestro Script, debemos declararlo y lo hacemos de la siguiente manera:

private void OnTriggerExit(Collider c){

//Acciones a realizar cuando se detecta una entrada al Trigger.

}

Si las condiciones se dán, este método se ejecutará automáticamente, así que en su interior escribimos todo lo que sea necesario hacer cuando eso pase.

El parámetro “Collider c” que recibe el método, es el Collider del GameObject que dejó de estar en contacto con el Trigger. Podemos usar este parámetro para hacer muchas cosas, por ejemplo obtener el GameObject que tiene asignado ese collider, esto lo hacemos simplemente con:

c.gameObject

A partir de ahí podemos leer cualquier otra componente que tenga asignado el GameObject, su tag, su layer, modificar lo que necesitemos y se nos permita modificar, ejecutar métodos definidos en Scripts que pueda tener asignados y muchas más acciones.

Para saber más sobre métodos o funciones de programación con parámetros te invito a ver este vídeo o leer su artículo correspondiente.

Conclusión

El método OnTriggerExit nos permite detectar cuándo un GameObject deja de estar en contacto con un Collider en modo Trigger y podemos ejecutar las acciones deseadas cuando eso pase.

OnTriggerExit se ejecuta automáticamente, para para esto deben darse algunas condiciones, la primera es que deben haber dos GameObjects con Colliders involucrados y uno de ellos en modo Trigger y la segunda es que al menos uno de los GameObjects debe tener asignada una componente RigidBody.