当条件仅按X键时,它工作得很好。当我添加按住W键时出现问题。它只有 30% 的时间有效。
if (Input.GetKeyDown(KeyCode.X) && Input.GetKey(KeyCode.W)
{
Attackpressed = true;
}
if (Attackpressed)
{
Attackpressed = false;
if (!isAttacking)
{
isAttacking = true;
}
if (IsGrounded())
{
PlayAnimation(Attackup);
}
Invoke("AnimationStop",0.3f);
{
PlayAnimation(Attackupaway);
}
Invoke("AnimationStop",0.3f);
}
同时按住w键并按x键,并且不接地时,会激活“attackupaway”动画。我不想在动画中添加过渡,因为当逻辑变得复杂时我会感到非常困难。谢谢你
这里的问题是使用
GetKeyDown
。
与
GetKey
比较。
GetKey()
将在按住按键的每一帧中返回 true,而 GetKeyDown()
仅在按下的第一帧中返回 true,然后即使按键仍然按下,此后也返回 false - 这很常见,因为当我们按下一个键时,这些帧可以而且确实会多次发生。