Version: 2020.1
Objetos con Múltiples Partes Moviéndose
Animator Controllers

Utilizando Animation Events (eventos de animación)

Puede aumentar la utilidad de los clips de animación mediante eventos de animación, que le permiten llamar funciones en el script del objeto en puntos específicos del timeline (la línea de tiempo).

La función llamada por un evento de animación también tiene la opción de tomar un parámetro. El parámetro puede ser una referencia float, string, int uobject, o un objeto AnimationEvent. El objeto AnimationEvent tiene variables miembro que permiten que una referencia de float, string, int y object pasen a la función a la vez, junto con otra información sobre el Evento que desencadenó la llamada a la 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);
}

To add an Animation Event to a clip at the current playhead position, click the Event button. To add an Animation event to any point in the Animation, double-click the Event line at the point where you want the Event to be triggered. Once added, you can drag the mouse to reposition the Event. To delete an Event, select it and press the Delete key, or right-click on it and select Delete Event.

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 agrega un Evento, la Ventana del Inspector muestra varios campos. Estos campos le permiten especificar el nombre de la función que desea llamar y el valor del parámetro que desea pasarle.

La ventana Inspector del Animation Event
La ventana Inspector del Animation Event

Los eventos agregados a un clip se muestran como marcadores en la línea del evento. Mantenga el mouse sobre un marcador para mostrar una información sobre herramientas con el nombre de la función y el valor del parámetro.

Puede seleccionar y manipular eventos múltiples en el timeline (línea de tiempo).

Para seleccionar varios eventos en la línea de tiempo, mantenga presionada la tecla Shift y seleccione los marcadores de eventos uno por uno para agregarlos a su selección. También puede arrastrar un cuadro de selección a través de ellos; haga clic y arrastre dentro del área del marcador de eventos, así:

Ejemplo

Este ejemplo muestra cómo agregar eventos de animación a un GameObject simple. Cuando se siguen todos los pasos, el cubo se anima hacia delante y hacia atrás a lo largo del eje x durante el modo de reproducción, y el mensaje de evento se muestra en la consola cada 1 segundo en el tiempo de 0,8 segundos.

El ejemplo requiere un pequeño script con la función PrintEvent(). Esta función imprime un mensaje de depuración que incluye un string (“called at:”) y la hora:

// 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);
    }
}

Cree un archivo de script con este código ejemplo y colóquelo en su carpeta Project (haga clic derecho dentro de la ventana Proyect en Unity y seleccione Create > C# Script, luego copie y pegue el ejemplo de código anterior en el archivo y guárdelo).

En Unity, cree un Cube GameObject (menú: GameObject > 3D Object > Cube). Para agregarle su nuevo archivo script, arrástrelo y suéltelo de la ventana del Proyecto en la ventana del Inspector.

Select the Cube and then open the Animation window (menu: Window > Animation > Animation or use ctrl+6). Set a Position curve for the x coordinate.

ventana de Animación
ventana de Animación

A continuación, configure la animación para que la coordenada x aumente a alrededor de 0.4 y luego regrese a cero durante 1 segundo, luego cree un evento de animación a aproximadamente 0.8 segundos. Presione Play para ejecutar la animación.


  • 2018–08–24 Page amended
Objetos con Múltiples Partes Moviéndose
Animator Controllers