在空中按住X键同时按住W键且不落地时无法激活攻击动画

问题描述 投票:0回答:1

当条件仅按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”动画。我不想在动画中添加过渡,因为当逻辑变得复杂时我会感到非常困难。谢谢你

c# unity-game-engine 2d
1个回答
0
投票

这里的问题是使用

GetKeyDown

GetKey
比较。

GetKey()
将在按住按键的每一帧中返回 true,而
GetKeyDown()
仅在按下的第一帧中返回 true,然后即使按键仍然按下,此后也返回 false - 这很常见,因为当我们按下一个键时,这些帧可以而且确实会多次发生。

https://community.gamedev.tv/t/getkey-vs-getkeydown/222468

© www.soinside.com 2019 - 2024. All rights reserved.