如何从StateMachineBehevior内部尽早退出某个州?

时间:2019-05-17 06:55:21

标签: c# unity3d unity3d-mecanim

我有一个StateMachineBehaviorScript,它需要检查外部布尔值是true还是false,如果为false,则当前状态需要立即停止以使下一个状态继续进行。

如果条件为假,我尝试使用animator.StopPlayBack(),并且在输入和更新中都尝试了此方法,但都没有起作用,无论布尔值如何,动画仍然一直播放。预先感谢您的帮助!

override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
    if (!isReady)
    {
        animator.StopPlayback();
    }
}

1 个答案:

答案 0 :(得分:0)

在动画设置中,请确保未选中名为“退出时间”的选项。 因为如果可以的话,无论开始新动画之前执行什么操作,它都会完成当前动画。