Нужен ли объекту VR Rigidbody для коллайдера?

В Unity3D вам нужны твердые тела на GameObject, которые используют коллайдеры, поскольку они используют физику. Вам не нужны твердые тела для статических GameObject, потому что они не используют физику, хотя вам все равно нужно иметь хотя бы один в расчетах.

Моя ситуация такова: я хочу, чтобы игра обнаруживала попадание вашей головы сквозь стену с коллайдерами. Мне просто любопытно, поскольку коллайдер на голове не будет использовать физику, ему все еще нужно твердое тело, когда он движется, только не с физикой?

У меня вопрос: Требуется ли объекту VR жесткое тело? (и все же установить кинематический режим)


person Richard Muthwill    schedule 06.07.2020    source источник


Ответы (1)


Коллайдеры → Матрица действий при столкновении

= ›Это зависит.

Некоторые комбинации вызывают столкновение только с одним из двух объектов, но общее правило состоит в том, что физика не будет применяться к объекту, к которому не прикреплен компонент Rigidbody.

введите описание изображения здесь

введите описание изображения здесь

Вы сказали

поскольку коллайдер на голове не будет использовать физику

Но учтите, что в общем случае Столкновение = Физика.

Итак, да, по крайней мере, один из объектов, участвующих в столкновении, должен быть (кинематическим) твердым телом.

Как вы можете видеть в приведенной выше матрице, например, при столкновении со статическим объектом событие (например, OnCollisionEnter) будет вызвано только для объекта с (kinematic o not) Rigidbody, но не для статического объекта.

статический здесь означает, что к нему не прикреплен Rigidbody компонент, даже если он перемещается кодом или другими словами: как только что-то перемещается в вашей сцене, у него должен быть (кинематический) Rigidbody компонент!

Вы можете добавить коллайдеры к GameObject без компонента Rigidbody для создания полов, стен и других неподвижных элементов Scene. Они называются статическими коллайдерами. Напротив, коллайдеры на GameObject с Rigidbody называются динамическими коллайдерами.

person derHugo    schedule 06.07.2020