Как задать скорость движения объекта

08 августа 2016 18:33
Задача - запустить подгруженный из JSON динамический объект по сцене с определенной скоростью.
Пробую следующее:
m_physics.set_gravity(object, 0);
m_transform.set_translation_v(copy, from);
m_physics.apply_velocity(copy, 10, 0, 0);


Физика в сцене работает, объект честно перемещается в нужное место и при выключении гравитации не падает (без него падает). У объекта выставлен параметр Physics type: Dynamic, проставлены галочки Ghost и No Sleeping
Я ожидаю, что объект полетит с постоянной скоростью в заданном направлении, но он отображается, однако не двигается
08 августа 2016 18:35
Если это важно - объект создаётся копированием объекта, загруженного из JSON
09 августа 2016 08:30
Проверил, у меня всё работает.
Пример импортировать через менеджер проектов
В сцене копирую серый куб, делаю ему гравитацию 0 и поднимаю чуть чуть и даю пинок, что бы начал двигаться
Через секунду другой json подгружается. Появляется тёмный куб и с ним происходит тоже самое.

Dynamic, проставлены галочки Ghost и No Sleeping
Извиняюсь, не заметил этого.
Не стой, где попало… Попадет еще раз.
http://naviris.ru/
09 августа 2016 10:21
Действительно, у нас на данный момент поведение Ghost-физики отличается от Blender-ского. Такие объекты не подвергаются физической симуляции и, соответственно, на них не действуют методы типа apply_velocity. Мы изменим это поведение в одном из ближайших релизов.

Пока я бы рекомендовал вам припарентить объект Ghost к другом объекту, у которого соответствующим образом настроены Collision Group.
09 августа 2016 12:18
Всем большое спасибо. Я там тоже был не совсем прав, и по сути ghost-физика мне была не нужна, но пример Кирилла помог разобраться, хотя я так толком и не понял, где накосячил :(
 
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.