只有在上一个动画完成后才播放默认动画
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 从跳跃返回到 运行 状态的过渡箭头,并在你的检查器中添加退出时间条件。只有当所有布尔值都正确并且动画剪辑完成时才会发生这种转换。
截图供参考。
我正在制作一个无尽的跑步者,我希望游戏对象在按下向上键时跳跃一次。我的问题是,一旦我释放键,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 从跳跃返回到 运行 状态的过渡箭头,并在你的检查器中添加退出时间条件。只有当所有布尔值都正确并且动画剪辑完成时才会发生这种转换。
截图供参考。