【发布时间】:2014-11-16 05:00:01
【问题描述】:
我看过一些关于使用动画的旧系统的帖子,但我使用的是动画控制器,我想知道动画何时播放完毕。
有没有办法在动画播放完成时分配回调?
我可以创建一个协同程序并检查每一帧,但我觉得这样做是错误的。
你知道如何检查动画控制器动画何时播放完毕吗?
【问题讨论】:
我看过一些关于使用动画的旧系统的帖子,但我使用的是动画控制器,我想知道动画何时播放完毕。
有没有办法在动画播放完成时分配回调?
我可以创建一个协同程序并检查每一帧,但我觉得这样做是错误的。
你知道如何检查动画控制器动画何时播放完毕吗?
【问题讨论】:
由于您使用的是 Mecanim,这将为您提供您想要的:
if(this.animator.GetCurrentAnimatorStateInfo(0).IsName("AnimationName"))
{
// Do something.
}
确保您使用正确的 AnimationName,您会没事的。
API 参考 GetCurrentAnimatorStateInfo。
获取指定AnimatorController的当前状态信息 层。
它需要一个参数,即图层索引。
您可以通过调用函数来触发事件。您需要在Edit Animation Event 窗口的Function 区域的选定框架中写入要调用的函数的名称。
简短的tutorial 说明如何操作。
【讨论】:
Update() 上运行的 if 语句是相对空闲的处理时间。