¿Cómo funciona OnTriggerExit en Unity? Aplicaciones

Introducción

En este artículo vamos a ver cómo funciona el método OnTriggerExit en Unity. Esta función nos permitirá saber cuándo el Collider de un GameObject sale de otro Collider que está configurado como detector. OnTriggerEnter y OnTriggerExit son métodos muy similares pero cambia el momento en el que sucede la ejecución de estos métodos, entender estas funciones nos permitirá ejecutar acciones en el momento preciso en que lo necesitamos.

A continuación tienes dos vídeos que explican el funcionamiento de un prototipo para la detección de un objeto que entra dentro de un Collider. En el primer vídeo vemos cómo configurar los Colliders para que los eventos OnTrigger funcionen.


En el segundo vídeo analizamos el código del Script donde están definidas las funciones OnTriggerEnter y OnTriggerExit.



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.

Paquete para descargar:

A continuación puedes descargar el paquete de Unity que al importarlo en tu motor, recuperarás los Assets que usamos y podrás probarlo en tu propia computadora.

Scroll al inicio
Secured By miniOrange