wide_e
@wide_e
Начинающий разработчик на C#

При зажатии кнопки действие выполняется один раз. Как сделать чтобы при зажатии выполнялось несколько раз?

У меня в игре надо чтобы при зажатии клавиши игрок двигался пока кнопка не будет отпущена. А у меня при нажатии действие выполняется только один раз. Как сделать чтобы игрок двигался пока кнопка зажата? (надеюсь нормально объяснил)
Код передвижения:
using UnityEngine;

public class playermove : MonoBehaviour
{
    public Rigidbody rb;
 
    public float forwardForce = 2000f;
    public float sidewaysForce = 500f;

   
    void FixedUpdate()
    {
        rb.AddForce(0, 0, forwardForce * Time.deltaTime);
//Это отвечает за конец игры,  если что))
        if (rb.position.y < -1f)
        {
            FindObjectOfType<GameManager>().EndGame();
        }
    }
    
    public void RightButton()
    {
            rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
    }

    public void LeftButton()
    {
            rb.AddForce(-sidewaysForce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
    }
}
  • Вопрос задан
  • 984 просмотра
Пригласить эксперта
Ответы на вопрос 2
@pashara
Вызывать RightButton() или LeftButton() пока нажата кнопка.
В общем виде: отлавливать событие нажатия и отпускания. Пока стоит триггер нажатой клавиши, в Update вызывать нужные тебе методы.
Ответ написан
d1msk1y
@d1msk1y
Начинающий инди разработчик на юнити
If(Input.GetKey(KeyCode.Mouse0))
{
LeftButton();
}
If(Input.GetKey(KeyCode.Mouse1))
{
RightButton();
}
GetKey - Когда кнопка нажата(Удерживание)
GetKeyDown - Действие выполняется один раз когда кнопку нажали
GetGeyUp - действие выполняется один раз когда кнопку отпустили
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы