Короткий прыжок и большой прыжок с вводом силы клавиатуры

Я столкнулся с проблемой, когда я прыгнул 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;
}
Другие вопросы по тегам