Как правильно рассчитать что машина ударила передом?

Физика в Unity

Как правильно рассчитать что машина ударила передом?

Сообщение MEGA_LUL 29 авг 2019, 14:31

Всем привет.

Интересует не как закостылить, а как правильно сделать.

Едет машина (или игрок бежит и сам в нее врезается), врезается в игрока, срабатывает OnCollisionEnter.

Как правильно понять, что машина ехала вперед и врезалась в игрока спереди? Или ехала задом и врезалось в игрока позади?

Как понимать тут нужна математика с векторами.

То есть как то сделать расчет, от rb.velocity силы движения.

Поставить доп. коллайдеры с каждой стороны, не предлагать.
MEGA_LUL
UNец
 
Сообщения: 2
Зарегистрирован: 29 авг 2019, 14:26

Re: Как правильно рассчитать что машина ударила передом?

Сообщение waruiyume 29 авг 2019, 15:38

Как правильно понять, что машина ехала вперед и врезалась в игрока спереди? Или ехала задом и врезалось в игрока позади?

Не надо так, у меня чуть вывих моска не случился!
if(Vector3.dot(car.transform.forward, (hit.point-car.transform.position).normalized)>0) удар передом
if(Vector3.dot(car.rigidBody.velocity.normalized, (hit.point-car.transform.position).normalized)>0) удар с той стороны в которую движется машина

Поставить два коллайдера- абсолютно нормальный вариант.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону


Вернуться в PhysX

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

Сейчас этот форум просматривают: Google [Bot] и гости: 0