使用动画事件在特定时间点调用函数。此函数可以用在附加到游戏对象的任何脚本中,但只能接受 float 类型、int 类型、string 类型、object 引用或 AnimationEvent 对象的单个参数。
例如,以下脚本接受字符串。它记录调用字符串参数时的时间和值。
// An example of C# function that can be called by an Animation Event
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
public void PrintEvent(string s)
{
Debug.Log("PrintEvent called at " + Time.time + " with a value of " + s);
}
}
要将动画事件添加到当前播放头位置的剪辑,请单击事件 (Event) 按钮。要在任意位置添加动画事件,请右键单击要添加事件的事件行,然后从上下文菜单中选择添加动画事件。添加后,单击并拖动动画事件以将其重新定位在事件轴上。
中
添加事件时,Inspector 窗口会显示功能字段。使用此字段可选择要调用的方法。请注意,动画事件仅支持具有单个参数的方法。无法选择接受多个参数的函数。
但是,可以使用 AnimationEvent 对象同时传递许多参数。AnimationEvent 对象接受 float、int、string 和 object 引用作为成员值。AnimationEvent 对象还提供了有关调用函数的动画事件的信息。
PrintEvent 方法从 ExampleClass 中选择。添加到剪辑的事件在事件轴中会显示一个标记。在标记上悬停光标可显示带有函数名称和参数值的工具提示。
您可以在事件轴中选择和操作多个事件。要在事件轴中选择多个事件,请按住 Shift 键并逐个单击每个事件标记。要从所选内容中删除标记,请按住 Shift 键并单击所选标记。
还可以使用选择框选择多个动画事件。为此,请在事件轴中单击并拖动:
要删除动画事件,请选择该事件并按 Delete 键。还可以右键单击动画事件并从上下文菜单中选择 Delete Event。