我有一个可以跳跃和蹲下的角色:
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;
}
中间语句