Un hilo muy interesante sobre los eventos de Unity. ¿Qué son los unity events y para que se usan? por el usuario de twitter Games Teacher o @UnityHorror .
Los eventos son una de las funcionalidades más interesantes para acoplar al código dado que permiten que el programa / videojuego ejecute otras funciones mientras que no llega el evento en cuestión. Una vez que este llegue lo ejecutará y volver al funcionamiento normal, sin que dé tiempo a lo usuarios de apercibirse del cambio.
Hilo Original ¿Qué son los unity events y para que se usan?
Hilo Editado ¿Qué son los unity events y para que se usan?
Como me habéis preguntado y creo que son bastante útiles en ciertos momentos, voy a contaros ¿Qué son los unity events y para que se usan? Abro hilo #unity3d #programacion #videojuegos #indiedev

Hay un #unityevent que seguramente hayas utilizado aunque sin saber que lo era y es OnClick forma parte del componente Button. Por ejemplo podemos desactivar un objeto sin tener que escribir código, damos a + metemos la referencia al Objeto y buscamos GameObject.SetActive


El resultado es cuando se produzca el evento, se hace Click, el objeto se desactiva, lo interesante es que hemos comunicado fácilmente dos objetos, el botón y el un GameObject llamado cuadrado. Puedes desactivar mas objetos con un mismo evento, dando a + y repitiendo la operación
Si quieres comunicar el Boton con otro Script, puedes dar al más y utilizar SendMessage o tener una función publica declarada , pasar la referencia y buscarla #unity3d #programacion #unityevent

Los #unityevent hacen lo mismo que el OnClick solo que seremos nosotros los que decidiremos: Cuando se lanza el evento. Que va a ocurrir Si otros se pueden añadir Para que se lance algo tiene que ocurrir algo, por lo que es muy típico usarlos con OnTriggerEnter, OnCollision etc
Los #unityevent pueden ser públicos o privados, dependerá de lo que necesitemos, veamos el caso en el que son públicos. Para usarlos debemos utilizar la librería http://UnityEngine.Events; En un script declaramos public UnityEvent OnAlarma; Cuando guardamos vemos que nos aparece

Todavía nos falta definir, cuando se lanza el evento, por ejemplo cuando suene el despertador void SuenaDespertador(){ OnAlarma.Invoke(); } Cuando se hace el Invoke todo lo que haya suscrito al evento (haya sido metido con el más) se ejecuta EnciendeLuz Levanta …..
En el ejemplo de despertador: Creamos un #unityevent OnAlarma Lo invocamos cuando SueneDespertador Creamos la lógica para que se lance la llamada a SuenaDespertador Podemos suscribir todo lo que queramos al evento OnAlarma

Conclusión
Los #unityevent están pensados para facilitar la comprensión del código, y crear llamadas a otros GameObject o Scripts fácilmente. Se pueden hacer pruebas de funcionamiento muy rápidamente, ya que se pueden suscribir + y desuscribir –
Yo los uso como comenté antes para los OnTriggerEnter y OnCollisionEnter , creando la lógica cuando el Jugador entra en esta zona dispara todos estas acciones: Se pone un sonido Se activa una animación Se cambia la cámara …..
¿Conocíais los #unityevent si es así como los usáis vosotros? Compartir ejemplos de uso para que aprendamos más entre todos. #unity3d #clases #programacion #csharp #indiedev

– Añadiendo código al evento
¿Qué son los unity events y para que se usan? – Para más hilos de twitter, mira el archivo