Равномерное движение ригидбади

Физика в Unity

Равномерное движение ригидбади

Сообщение Woolf 24 ноя 2018, 03:41

Собственно, как сделать равномерное движение в нужном направлении через физику? Ибо AddForce каждый fixed-тик придаёт ускорение.
И второй вопрос, есть ли какой-то аналог LookAt но для ригидбади?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Равномерное движение ригидбади

Сообщение Xtir 24 ноя 2018, 10:34

Для движения можно использовать rigidbody.velocity.
Xtir
UNIверсал
 
Сообщения: 498
Зарегистрирован: 21 окт 2016, 00:37

Re: Равномерное движение ригидбади

Сообщение 1max1 24 ноя 2018, 11:43

Собственно, как сделать равномерное движение в нужном направлении через физику?

Адекватное? Думаю никак, либо через костыли. Недавно пытался сделать через rb.MovePosition, думал будет реагировать на коллайдеры, ага, хрен там, реагирует также дергано как и transform.position = pos; Если найдешь способ обязательно напиши))
Возможно баг именно моей версии, хз...

п.с. Единственное что не дергается, так это rb.velocity, всё остальное до фени)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Равномерное движение ригидбади

Сообщение Anonymyx 24 ноя 2018, 16:24

И второй вопрос, есть ли какой-то аналог LookAt но для ригидбади?

Через MoveRotation:
Синтаксис:
Используется csharp
rb.MoveRotation(Quaternion.LookRotation(target.position - transform.position)); //Или тот же LookAt();
 


Через AddTorque:
Синтаксис:
Используется csharp
 rb.AddTorque(Vector3.Cross(transform.forward, (target.position - transform.position)) * Time.deltaTime);
 


rb.MovePosition

Это используется для кинематических объектов. Как и MoveRotation.
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: Равномерное движение ригидбади

Сообщение Woolf 24 ноя 2018, 18:11

1max1 писал(а):
Собственно, как сделать равномерное движение в нужном направлении через физику?

Адекватное? Думаю никак, либо через костыли. Недавно пытался сделать через rb.MovePosition, думал будет реагировать на коллайдеры, ага, хрен там, реагирует также дергано как и transform.position = pos; Если найдешь способ обязательно напиши))
Возможно баг именно моей версии, хз...

п.с. Единственное что не дергается, так это rb.velocity, всё остальное до фени)


А вот нашел канонически правильное изменение скорости. Не очевидно, прямо скажем

Синтаксис:
Используется csharp
var velocityChange = desiredVelocity - _rigidbody.velocity;
_rigidbody.AddForce (velocityChange, ForceMode.VelocityChange);
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Равномерное движение ригидбади

Сообщение waruiyume 24 ноя 2018, 19:14

Что не очевидно?
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Равномерное движение ригидбади

Сообщение Woolf 24 ноя 2018, 20:22

waruiyume писал(а):Что не очевидно?


Не очевидно, что так можно делать ) Но работает.
PS Эта физика рыболовных приманок заставляет сходить с ума )) Столько сил на них действует в воде, а на воздухе совсем другие силы..
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


Вернуться в PhysX

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


cron