版本: Unity 6 (6000.0)
语言英语
  • C#

AnimationEvent

UnityEngine 中的类

/

实现于:UnityEngine.AnimationModule

建议修改

成功!

感谢您帮助我们改进 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每项修改建议,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们改进 Unity 文档的质量。

关闭

取消

描述

AnimationEvent 允许您像 SendMessage 一样在动画回放期间调用脚本函数。

动画事件支持接受零个或一个参数的函数。参数可以是浮点数、整数、字符串、对象引用或 AnimationEvent。

// Animation Event example
// Small example that can be called on each specified frame.
// The code is executed once per animation loop.

using UnityEngine; using System.Collections;

public class Example : MonoBehaviour { public void PrintEvent() { Debug.Log("PrintEvent"); } }

下面是一个更详细的示例,展示了一种更复杂创建动画的方法。在本脚本示例中,访问了 Animator 组件并获取了其中的 Clip。(此剪辑是在 Animation 窗口中设置的。)剪辑持续 2 秒。创建了一个 AnimationEvent,并设置了参数。参数包括函数 PrintEvent(),该函数将处理事件。然后将该事件添加到剪辑中。所有这些操作都在 Start() 中完成。游戏启动后,事件会在 1.3 秒后调用,然后每隔 2 秒重复一次。

// Add an Animation Event to a GameObject that has an Animator
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour { public void Start() { // existing components on the GameObject AnimationClip clip; Animator anim;

// new event created AnimationEvent evt; evt = new AnimationEvent();

// put some parameters on the AnimationEvent // - call the function called PrintEvent() // - the animation on this object lasts 2 seconds // and the new animation created here is // set up to happen 1.3s into the animation evt.intParameter = 12345; evt.time = 1.3f; evt.functionName = "PrintEvent";

// get the animation clip and add the AnimationEvent anim = GetComponent<Animator>(); clip = anim.runtimeAnimatorController.animationClips[0]; clip.AddEvent(evt); }

// the function to be called as an event public void PrintEvent(int i) { print("PrintEvent: " + i + " called at: " + Time.time); } }

属性

animationState触发此事件的动画状态(只读)。
animatorClipInfo与此事件相关的动画剪辑信息(只读)。
animatorStateInfo与此事件相关的动画状态信息(只读)。
floatParameter存储在事件中的浮点数参数,将发送到函数。
functionName将要调用的函数的名称。
intParameter存储在事件中的整数参数,将发送到函数。
isFiredByAnimator如果此 Animation 事件由 Animator 组件触发,则返回 true。
isFiredByLegacy如果此 Animation 事件由 Animation 组件触发,则返回 true。
messageOptions函数调用选项。
objectReferenceParameter存储在事件中的对象引用参数,将发送到函数。
stringParameter存储在事件中的字符串参数,将发送到函数。
time触发事件的时间。

构造函数

AnimationEvent创建一个新的动画事件。