C# 动画控制器:动画完成回调

C# 动画控制器:动画完成回调,c#,animation,3d,unity3d,C#,Animation,3d,Unity3d,我看过一些关于遗留系统使用动画的帖子,但我使用的是Animator控制器,我想知道动画何时完成播放 有没有一种方法可以在动画播放完成时指定回调 我可以创建一个共同的例行程序,检查每一帧,但我觉得这样做是错误的 您知道如何检查动画控制器动画何时完成播放吗?因为您使用的是Mecanim,这将为您提供您想要的: if(this.animator.GetCurrentAnimatorStateInfo(0).IsName("AnimationName")) { // Do something

我看过一些关于遗留系统使用动画的帖子,但我使用的是Animator控制器,我想知道动画何时完成播放

有没有一种方法可以在动画播放完成时指定回调

我可以创建一个共同的例行程序,检查每一帧,但我觉得这样做是错误的


您知道如何检查动画控制器动画何时完成播放吗?

因为您使用的是Mecanim,这将为您提供您想要的:

 if(this.animator.GetCurrentAnimatorStateInfo(0).IsName("AnimationName"))
 {
    // Do something.
 }
确保使用正确的AnimationName,您会没事的


API参考

获取指定AnimatorController上的当前状态信息 层

它采用一个参数,即层的索引


事件解决方案 您可以通过调用函数来触发事件。您需要在
编辑动画事件
窗口的
函数
区域中的选定帧中写入要调用的函数的名称


简要介绍如何操作。

是的,但这再次要求我检查每一帧。我想避免不必要的开销!我认为这是一个遗产,我不认为这与当前的动画控制器工作system@Aggressor顺便说一下,在
Update()
上运行的if语句相对来说是免费的处理时间。我将在周末处理这个问题。我会尝试一下你的方法,如果我成功了,我会发回:)谢谢