【问题标题】:Animator Controller: Animation Completion CallbackAnimator Controller:动画完成回调
【发布时间】:2014-11-16 05:00:01
【问题描述】:

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

有没有办法在动画播放完成时分配回调?

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

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

【问题讨论】:

    标签: c# animation 3d unity3d


    【解决方案1】:

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

     if(this.animator.GetCurrentAnimatorStateInfo(0).IsName("AnimationName"))
     {
        // Do something.
     }
    

    确保您使用正确的 AnimationName,您会没事的。


    API 参考 GetCurrentAnimatorStateInfo

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

    它需要一个参数,即图层索引。


    事件解决方案

    您可以通过调用函数来触发事件。您需要在Edit Animation Event 窗口的Function 区域的选定框架中写入要调用的函数的名称。

    简短的tutorial 说明如何操作。

    【讨论】:

    • 是的,但这又需要我检查每一帧。我想避免不必要的开销!
    • 我认为这是遗留问题我认为这不适用于当前的动画控制器系统
    • @Aggressor 顺便说一句,在您的 Update() 上运行的 if 语句是相对空闲的处理时间。
    • 我将在周末进行这项工作。我会试试你的方法,如果我得到它的工作,我会回帖:)谢谢
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    相关资源
    最近更新 更多