#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);
}
}
}