El poder de clips de Animación puede ser incrementado utilizando los Animation Events, los cuales le permite llamar funciones en el script del objeto en puntos específicos en la linea de tiempo.
La función llamada por un animation event (evento de animación) puede opcionalmente tomar un parámetro. El parámetro puede ser un float, string, int, referencia a un objeto o un objeto AnimationEvent. El objeto AnimationEvent tiene variables miembro que permiten un float, string, integer y referencia a un objeto en ser pasada a la función de una sola vez, a lo largo de otra información acerca del evento que activo ese llamado de función.
// Esta función C# se puede llamar por un Animation Event
public void PrintFloat (float theValue) {
Debug.Log ("PrintFloat is called with a value of " + theValue);
}
Usted puede agregar un Animation Event (Evento de Animación) a un clip en la posición del cursor de reproducción haciendo click en el Event button o en cualquier punto en la animación haciendo doble click en la Event Line en el punto dónde usted quiere que el evento sea activado. Una vez agregado, un evento puede ser re-posicionado arrastrándolo con un mouse. Usted puede borrar un evento seleccionándolo y oprimiendo Delete, o haciendo click derecho en él y seleccionando Delete Event del menú de contexto.
Cuando usted agrega un evento, un cuadro de dialogo aparecería para preguntarle a usted por el nombre de la función y el valor del parámetro que usted quiere pasarle.
Los eventos agregados a un clip son mostrados como marcados en la linea de evento. Mantener el mouse encima de un marcador va a mostrar un información de la herramienta con el nombre de la función y el valor del parámetro.
Este ejemplo es muy simple. Agregue a un script pequeño con solo una función simple, PrintEvent()
, que imprima un mensaje de depuración incluyendo un string y el tiempo:
// This C# function can be called by an Animation Event
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
public void PrintEvent(string s) {
Debug.Log("PrintEvent: " + s + " called at: " + Time.time);
}
}
En Unity cree un objeto Cube (cubo) y agregue el código script ExampleClass
. Seleccione el cubo y luego abra la ventana de Animación. Configure una curva de Posición para la coordenada X.
Luego configure la animación para la coordenada x para que aumente alrededor de 0.4 y de vuelta a cero en 1 segundo. Luego cree un animation event aproximadamente en 0.8 segundos. Presione el botón Play (reproducción) y el cubo se anima hacia adelante y hacia atrás a lo largo del eje X. El mensaje del evento se muestra en la consola cada segundo en el tiempo de 0.8 segundos. Este ejemplo muestra una manera simple de agregar eventos de animación a un GameObject simple.