如何同时检查两个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;
}
中间语句
我有一个可以跳也可以蹲的角色:
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;
}
中间语句