只有在上一个动画完成后才播放默认动画

Play the default animation only after the previous one is completed

我正在制作一个无尽的跑步者,我希望游戏对象在按下向上键时跳跃一次。我的问题是,一旦我释放键,GameObject 就会停止跳跃并进入其默认动画 运行 而没有完成跳跃动画。如何让GameObject完成一次动画,然后才进入运行动画状态。 我正在使用 animator,其中 运行 是默认动画,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);
    }
}

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

截图供参考。