【问题标题】:How to exit a state early from within a StateMachineBehevior?如何从 StateMachineBehevior 中提前退出状态?
【发布时间】:2019-10-04 11:20:54
【问题描述】:

我有一个 StateMachineBehaviorScript 需要检查外部布尔值是真还是假,如果为假,则需要立即停止当前状态以让下一个状态继续。

如果条件为假,我已经尝试使用 animator.StopPlayBack() 并且在条目和更新中都尝试过,但似乎都没有工作,无论布尔值如何,动画仍然会一直播放。提前感谢您的帮助!

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

【问题讨论】:

  • 您可以添加一个过渡并调用animator.setTrigger()等来启动它。这对你有用吗?

标签: c# unity3d unity3d-mecanim


【解决方案1】:

在动画设置中,确保没有选中名为 Has Exit time 的选项。 因为如果是的话,无论如何都会完成当前的动画,然后再开始一个新的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-21
    • 2020-01-06
    • 2022-06-21
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    相关资源
    最近更新 更多