我正在制作一个无尽的跑步者,我希望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);
}
}
答案 0 :(得分:2)
是个好问题。 转到动画师,选择从跳转到运行状态的过渡箭头,并在检查器中添加退出时间条件。这种转换只会在所有bool都正确并且动画剪辑完成时才会发生。
屏幕截图供参考。