Я просмотрел десятки учебных пособий и до сих пор не могу понять это.
У меня есть кнопки вверх, вниз, влево и вправо, которые управляют движением трехмерного объекта (в моем случае , пушка)
Когда игрок нажимает кнопки со стрелками влево / вправо, объект будет перемещаться на одну единицу вдоль оси + -X.
Я получил это на работу, однако объекты двигаться в одном направлении навсегда и не останавливается, когда кнопка не нажата! Как заставить объект двигаться только один раз при нажатии кнопки?
public class ClickMove : MonoBehaviour
{
public GameObject cannon;
public bool pressed = false;
public void HitButtonLeft()
{
if (Input.GetMouseButtonDown(0))
{
pressed = true;
cannon.GetComponent<Rigidbody>().AddForce(-1000.0f, 0, 0);
}
}
public void HitButtonRight()
{
cannon.GetComponent<Rigidbody>().AddForce(1000.0f, 0, 0);
}
}
Я знаю, что сейчас у меня 1000.0f, но 1 был слишком медленным, и вы едва могли видеть движение. Я также попытался добавить «GetMouseButtonDown (0)», чтобы не запускать l oop, если не активен левый щелчок? (Но я не смог понять, как правильно это реализовать)
Я также нашел этот код повсюду в Интернете. но для своей жизни я не могу понять, как / где его использовать:
void update();
{
transform.position = new Vector3(3 * time.deltatime, 0, 0);
}
Каков наилучший способ сделать это? У меня нет мышления программистов, и я пытаюсь заставить его работать несколько дней :( Мне просто нужен кто-то, кто объяснит, как использовать перевод, если это лучший вариант. Я перепробовал абсолютно все и не смог его получить на работу! Я понятия не имею, что я делаю неправильно, и все учебные пособия не являются дружественными к n00b.
Кроме того, я не могу использовать "void Update", поскольку это не так присваивается кнопке пользовательского интерфейса, поэтому я даже не знаю, где go отсюда ...
Спасибо
Обновление: я также попробовал следующее (супер обратный способ сделать это ) но не смог заставить его работать. Кто-то, пожалуйста, помогите мне разобраться!
{
while (count < 2) {
cannon.GetComponent<Rigidbody>().AddForce(-1000.0f, 0, 0);
count += 1;
}
while (count2 < 2)
{
cannon.GetComponent<Rigidbody>().AddForce(1000.0f, 0, 0);
count2 += 1;
count = 0;
}
}```