Вопросы и ответы по «Unity 3D»

Написал скрипт с AddForce для движения персонажа. Но при нажатии кнопки "W" персонаж двигается прямо, не останавливаясь. Как это исправить?

Вот фрагмент кода:
C++
if (Input.GetKey (KeyCode.W)) {
Player.GetComponent<Rigidbody> ().AddForce (Player.transform.forward * PlayerSpeed);
}
MrKein (1)
06.11.2016 13:48
Пожаловаться
Подписаться
+
0
-
1

Ответы на вопрос (4)

Сортировать по
голосам
+
0
-
0
13.11.2016 12:11
Думаю, вам нужно дописать условие, что если клавиша не зажата, то действие должно быть прекращено. К сожалению, синтаксис Unity 3D я не знаю и код не подскажу, но надеюсь мысль подкинула толковую Well
Wilsch#176900
+
0
-
0
09.06.2017 22:37
Если ещё актуально то будет выглядеть примерно так:

public float speed;

private Rigidbody rb;
public GameObject Player;

void Start()
{
rb = GetComponent<Rigidbody>();
}


void Update()
{
if (Input.GetKey(KeyCode.W))
{
rb.drag = 0;
Player.GetComponent<Rigidbody>().AddForce(Player.transform.forward * speed);
}
else
{
rb.drag = 20;
}
}
Никита#200495
+
0
-
0
05.01.2019 15:14
можете если не трудно написать готовый скрипт для движения 2д персонажа пожалуйста
Гость#235404
+
0
-
0
01.01.2024 19:19
if(Input.GetKeyDown(keycode.W) {
Player.GetComponent<Rigidbody> ().AddForce (Player.transform.forward * PlayerSpeed);
}
Вопрос и ответы были вам полезны?
Да
Нет
Попробуйте также:

Похожие вопросы :

Добавить ответ

Ваше имя:

Регистрация? Это возможность подписаться на новые ответы, получать за ответы очки и призы
В ответ на сообщение Нет
+ Фото
Captcha
Текст с картинки:
Отправить
Маты, сообщения БОЛЬШИМИ БУКВАМИ, с грубыми ошибками, просто неуважительные или совершенно не по теме будут удаляться.