Короткий прыжок и большой прыжок с вводом силы клавиатуры
Я столкнулся с проблемой, когда я прыгнул GameObject. Я уже делаю Экшн largjump и shortjump. Но проблема в том, как я могу сделать Условное заявление. Я хочу различить слабый ввод с клавиатуры и сильный ввод с клавиатуры.
Вот мой код
if (Input.GetButtonDown("Jump"))
{
float JumpTime = 0;
JumpTime = JumpTime + Time.deltaTime;
if (Input.GetButtonUp("Jump") && JumpTime < 0.3f)
{
playerCtrl.ActionShortJump();
}
else if (Input.GetButtonUp("Jump") && JumpTime > 0.3f)
{
playerCtrl.ActionJump();
}
}
1 ответ
GetButtonDown
возвращает true только в первом кадре, который нажата кнопка, поэтому вы никогда не будете прыгать, так как кнопка не может быть вниз и вверх на одном кадре. Вам нужно будет использовать GetButton
увеличить время прыжка, пока кнопка нажата, и GetButtonDown
сбросить таймер при первом нажатии кнопки, а также JumpTime
вне общего метода.
float JumpTime;
void Update()
{
if (Input.GetButtonDown("Jump"))
JumpTime = 0;
if (Input.GetButton("Jump"))
JumpTime += Time.deltaTime;
if (Input.GetButtonUp("Jump") && JumpTime > 0 && JumpTime < 0.3f)
playerCtrl.ActionShortJump();
else if (Input.GetButtonUp("Jump") && JumpTime > 0 && JumpTime > 0.3f)
playerCtrl.ActionJump();
else
JumpTime = 0;
}