Как я могу заставить мой проигрыватель непрерывно двигаться, когда нажата кнопка?

#c# #unity3d

#c# #unity3d

Вопрос:

я хочу, чтобы мой проигрыватель перемещался влево всякий раз, когда удерживается нажатой кнопка, однако, когда я тестировал свой скрипт в unity, он перемещал его только один раз. Я хочу заставить его непрерывно двигаться, кто-нибудь знает, как это исправить?

  public void LeftMove()//Gets called everytime my button is held down
{
    rb.AddForce(120 * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
  

Комментарии:

1. Не могли бы вы, пожалуйста, поделиться своим полным кодом? Спасибо!

Ответ №1:

Для этого я бы использовал MonoBehavior :https://docs.unity3d.com/ScriptReference/Input.getKey.html?_ga=2.41628450.1679355400.1598170423-1757949218.1598170423

Это не то событие, которое вы ищете, поэтому вам нужно проверять себя каждый цикл, нажата ли клавиша:

 using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKey(KeyCode.DownArrow))
        {
            rb.AddForce(120 * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
        }
    }
}