Unity 6.3
0 онлайн 72 гостей 3 в системе
Вход
Физика Шаг 37 из 99

Введение в сложные коллайдеры

A комплексный коллайдер является коллекцией коллайдеров на одном и том же Rigidbody GameObject.

Составные коллайдеры в совокупности ведут себя как одиночный коллайдер Rigidbody. Они полезны, когда вам нужен точный коллайдер для вогнутой формы, или если у вас есть модель, которую было бы слишком сложно симулировать с помощью Коллайдер с сеткой.

Строительство сложного коллайдера

Композитный коллайдер состоит из следующих элементов:

  • родитель GameObject, который имеет Rigidbody
  • Пустое дочернее ядро GameObjects, содержащее коллайдеры

Композитный коллайдер должен иметь только один Rigidbody, который должен находиться в корне GameObject.

Более подробные инструкции по созданию сложного коллайдера см. в Создание сложного коллайдера.

Композитный коллайдер на модели пистолета. Пять коллайдеров составляют приближенную форму модели.
Композитный коллайдер на модели пистолета. Пять коллайдеров составляют приближенную форму модели.

На рисунке выше, Gun Model GameObject имеет Rigidbody, прикрепленный к родительскому GameObject, и несколько дочерних GameObjects, каждый из которых имеет примитивный коллайдер. Когда физические силы перемещают родительского Rigidbody, дочерние коллайдеры перемещаются вместе с ним. Примитивные коллайдеры могут столкнуться с другими коллайдерами в окружающей среде, и родительский Rigidbody изменяет свой способ движения на основе этих столкновений.

Эта конфигурация обеспечивает большую гибкость, чем один GameObject, содержащий Rigidbody и несколько коллайдеров. Когда каждый коллайдер находится на другом GameObject, вы можете изменить Transform каждого коллайдера по отдельности. Однако, вам следует следить за поведением Rigidbody при перемещении коллайдеров. Изменения в положении и масштабе коллайдера могут изменить центр массы Rigidbody, что может привести к некоторому неожиданному поведению, если непрерывное изменение производится в течение нескольких кадров во время выполнения. Если это происходит, вы можете использовать rigidbody.centerOfMass для ручной установки центра массы.

Как работает сложный коллайдер

Когда вы подключаете несколько коллайдеров к одному и тому же Rigidbody, система физики рассматривает всю коллекцию как единый Rigidbody коллайдера. Тип коллайдера (динамическая или кинематическая) определяется Rigidbody конфигурации.

Когда сложный коллайдер соприкасается с другим коллайдером, Unity регистрирует столкновения для каждого индивидуального коллайдера в составе. По этой причине, вы должны попытаться расположить коллайдеры так, чтобы вы получали только те пары столкновений, которые вы хотите во время выполнения, или использовать метки коллайдеров для определения поведения, вызванного конкретными коллайдерами.

Преимущества и ограничения комбинированных коллайдеров

В большинстве случаев сложные коллайдеры предлагают аналогичное решение, как коллайдеры Сетка: их главная цель — обеспечить точное столкновение объектов сложной формы. При рассмотрении преимуществ и ограничений сложных коллайдеров, вы обычно сравниваете их с коллайдерами Mesh.

Основные преимущества коллайдеров с комбинированным блоком:

  • Вы можете получить столкновения для сложных вогнутых форм. Коллайдеры сетки более точны, но они не поддерживают точные столкновения для вогнутых форм.
  • В некоторых случаях сложные коллайдеры могут быть менее вычислительно требовательными, чем коллайдеры Mesh. Это часто бывает в случае простых форм, для приближения которых требуется всего несколько коллайдеров, или для форм, которые не должны быть слишком точными. Например, коллайдер Mesh может генерировать сотни многоугольников, чтобы точно соответствовать сложной форме, но приближение с примитивными коллайдерами может потребовать гораздо меньше.

Однако сложные коллайдеры также имеют некоторые значительные ограничения:

  • Составные коллайдеры не такие точные. В большинстве случаев, вы строите составной коллайдер из более простых форм, которые позволяют вам приблизиться, но не идеально соответствовать форме предмета.
  • Композитные коллайдеры занимают больше времени, чтобы создать. Композитные коллайдеры требуют, чтобы вы организовали каждый коллайдер вручную, что занимает больше времени.
  • В некоторых случаях, сложные коллайдеры могут быть более вычислительно требовательными, чем коллайдеры Mesh. Это часто бывает в случае очень сложных форм, которые требуют большого количества коллайдеров для аппроксимации. Один коллайдер Mesh может быть более эффективным, чем несколько примитивных коллайдеров.

Решение всегда уникально для вашего проекта, поэтому вам следует протестировать каждую конфигурацию и использовать Physics Profiler, чтобы понять эффективность настройки вашего коллайдера.