如何同时检查两个bool 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;
}

我的角色有一个相当大的命中框,当他蹲下时,命中框会变小。我的问题是:当角色在跳跃时,如果他们蹲下,当他们在空中时,命中框会变小,我想通过检查跳跃是真的,并且用户按下"蹲下"按钮,角色不会蹲下来避免这种情况。但是因为我的if在Update方法中,所以我不能使用,因为我创建了一个无限循环。我试着使用双重检查,比如:

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;
}

中间语句

相关内容

  • 没有找到相关文章

最新更新