仅在前一个动画完成后播放默认动画

时间:2015-02-10 13:28:54

标签: c# unity3d

我正在制作一个无尽的跑步者,我希望GameObject在按下向上键时跳一次。我的问题是,一旦我释放键,GameObject就会停止跳转并进入默认的运行动画,而不会完成跳转动画。如何让GameObject完成动画一次,然后才进入正在运行的动画状态。 我正在使用animator,其中Running是默认动画,Jump是按键。

请帮忙!

void moveNinja()
{
    if ((Input.GetKey(KeyCode.W)) )
    {
        animator.SetBool("jump", true);
        animator.SetBool("run", false);
        animator.SetBool("slide", false);
    }
    if ((Input.GetKey(KeyCode.S)))
    {
        animator.SetBool("slide", true);
        animator.SetBool("run", false);
        animator.SetBool("jump", false);
    }
    if (Input.GetKeyUp(KeyCode.S))
    {
        animator.SetBool("run", true);
        animator.SetBool("slide", false);
        animator.SetBool("jump", false);

    if (Input.GetKeyUp(KeyCode.W))
    {
        animator.SetBool("run", true);
        animator.SetBool("slide", false);
        animator.SetBool("jump", false);
    }
}

1 个答案:

答案 0 :(得分:2)

是个好问题。 转到动画师,选择从跳转到运行状态的过渡箭头,并在检查器中添加退出时间条件。这种转换只会在所有bool都正确并且动画剪辑完成时才会发生。

屏幕截图供参考。

enter image description here