如何同时检查两个bool Unity,C#

How to check for two bool at the same time Unity, C#

我有一个可以跳也可以蹲的角色:

    if ((Input.GetButtonDown("Jump")))
    {
        jump = true;
        animator.SetBool("IsJumping", true);
    }
    if (Input.GetButtonDown("Crouch"))
    {  
        crouch = true;
        runSpeed = 0f;

    }else if (Input.GetButtonUp("Crouch"))
    {
        crouch = false;
        runSpeed = 20f;
    }

我的角色有一个相当大的碰撞箱,当他蹲下时碰撞箱变得相当小。 我的问题:当角色在跳跃时,如果他们蹲下,当他们在空中时,命中框会变小,我想通过检查当跳跃为真并且用户按下按钮 "crouch" 时角色不会'不要蹲下。 但是因为我的 ifs 在 Update 方法中,我不能使用 while 因为我创建了一个无限 loop.I 尝试使用双重检查,如:

if jump and crouch then no crouch

if no jump and crouch then crouch

但这也不管用。我的想法是使用 while 循环,但我不能,所以我怎么能创建一些东西来检查当我的跳跃是真的时我不能蹲下。 (我有一个进行地面检查的功能,所以角色一落地我的跳跃就会变成假)

谢谢

更新-这不是&&&的情况,谢谢

if ((Input.GetButtonDown("Jump")))
    {
        jump = true;

        animator.SetBool("IsJumping", true);
    }
    if (Input.GetButtonDown("Crouch"))
    {  
         if(!animator.GetBool("IsJumping")){
        crouch = true;
        runSpeed = 0f;
        }

    }else if (Input.GetButtonUp("Crouch"))
    {
        crouch = false;
        runSpeed = 20f;
    }

请特别注意,这个

        if(!animator.GetBool("IsJumping")){
        crouch = true;
        runSpeed = 0f;
        }

中间语句