我有一名球员,我想将球员从左向右移动。我可以通过键盘事件移动播放器。但问题是,当我释放键时,播放器动画应该是空闲的。它不起作用。为什么呢?
void Update ()
{
if (Input.GetKeyDown(KeyCode.RightArrow))
{
transform.Translate(Vector3.forward*Time.deltaTime);
animation.Play("Walk_with_Bin_001");
animation["Walk_with_Bin_001"].wrapMode = WrapMode.Loop;
}
if (Input.GetKeyUp(KeyCode.UpArrow))
{
animation.Stop("Walk_with_Bin_001");
animation.Play("Idle");
}
}
答案 0 :(得分:1)
我怀疑您可能已经混淆了if语句条件的密钥代码。在第一个块中,您正在检查KeyCode.RightArrow
的keydown - 但在第二个块中,您正在检查KeyCode.UpArrow
的密钥。
这意味着即使您释放右箭头键,“Walk_with_Bin_001”也会继续循环播放,直到您按向上箭头键。更改第二个条件也使用KeyCode.RightArrow
,您的代码应该按照您的预期执行,如下所示:
if (Input.GetKeyUp(KeyCode.RightArrow))
{
animation.Stop("Walk_with_Bin_001");
animation.Play("Idle");
}