Objetos con Múltiples Partes Moviéndose
Animator Controllers

Utilizando Animation Events (Eventos de Animación)

Detalles

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.

Los Animation Events son mostrados en la Event Line. Agregue un nuevo Animation Event haciendo doble click en la Event Line o utilizando el Event button.
Los Animation Events son mostrados en la Event Line. Agregue un nuevo Animation Event haciendo doble click en la Event Line o utilizando el Event button.

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.

El Animation Event dialogo emergente le permite especificar qué función llamar con qué valor en el parámetro.
El Animation Event dialogo emergente le permite especificar qué función llamar con qué valor en el parámetro.

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.

Manteniendo el cursor de mouse encima de un Animation Event marker va a mostrar qué función llama al igual que el valor del parámetro.
Manteniendo el cursor de mouse encima de un Animation Event marker va a mostrar qué función llama al igual que el valor del parámetro.

Ejemplo

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.

ventana de Animación
ventana de Animación

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.

Objetos con Múltiples Partes Moviéndose
Animator Controllers