У меня есть персонаж, который может прыгать, а также приседать с этим:
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, я не могу использовать while, потому что я создаю бесконечный цикл. Я попытался использовать двойную проверку, например:
if jump and crouch then no crouch
if no jump and crouch then crouch
Но это тоже не работает. Моя идея состояла в том, чтобы использовать циклы while, но я не могу так, как я могу создать что-то, что может проверить, что пока мой прыжок верен, я не могу присесть.
(У меня есть функция, которая проверяет грунт, поэтому мой прыжок станет ложным, как только персонаж упадет на пол)
спасибо
обновление - это не случай &
или &&
, спасибо