Как сделать движение колеса по заданным параметрам?
Есть сцена в Unity3D, где вводяться через InputField параметр скорости и времени. Дальше в скрипте вычисляется дистанция которую должно проехать данное колесо.
Как сделать так, чтобы это колесо ехало с заданной скоростью, заданное количество времени?
Нужно чтобы колесо не просто двигалось, а именно крутилось как в реальной жизни, то есть Rigidbody обязателен к использованию.
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Все перечисленное включает в себя ровно то же самое что и в "реальной жизни".
- Сам обьект колеса. Это цилиндр.
- Обьект обладает физическими свойствами - добавлен
RigitBody - Мы прикладаем усилие к колесу - задаем его скорость. Что бы скорость была стабильной - мы это делаем на каждом кадре. Скорость задается через
Velocityили черезAddForce() - Это нужно делать на каждом кадре пока не истечет необходимое время качения. Я бы советовал для этого использовать флаг
isInRiding. То есть мы задаем скорость если этот флаг включен. Чтобы отключать флаг я бы советовал использовать библиотеку LeanTween. Там есть метод который может исполнять код через заданное время. В даном случае - переключить флаг.
И нужно так же учитывать что когда мы перестанем прикладывать усилие на каждом кадре - оно продолжит катится как и в реальной жизни. И будет катится еще некторое время пока скорость сама по себе не станет нулевой.