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

Свойства
Свойства | Функции | |
---|---|---|
Convex | Установите флажок, чтобы Mesh Collider сталкивался с другими Mesh Collider. Выпуклые коллайдеры сетки ограничены 255 треугольниками. | |
Is Trigger | Установите этот флажок, чтобы Unity использовала этот коллайдер для запуска событий и физический движоксистему, моделирующую аспекты физических систем, чтобы объекты могут правильно ускоряться и подвергаться воздействию столкновений, гравитации и других сил. Подробнее См. в Словарь игнорировать. |
|
Cooking Options | Включите или отключите параметры приготовления сетки, которые влияют на то, как физический движок обрабатывает сетки. | |
None | Отключает все перечисленные ниже параметры приготовления. | |
Everything | Включает все перечисленные ниже варианты приготовления. | |
Cook for Faster Simulation | Заставляет физический движок готовить сетки для более быстрого моделирования. Когда эта функция включена, выполняется несколько дополнительных шагов, чтобы гарантировать, что результирующая сетка оптимальна для производительности во время выполнения. Это влияет на производительность физических запросов и генерации контактов. Когда этот параметр отключен, физический движок вместо этого использует более быстрое время приготовления и выдает результаты как можно быстрее. Следовательно, приготовленный Mesh Collider может быть не оптимальным. | |
Enable Mesh Cleaning | Делает физический движок чистым Meshes. Если этот параметр включен, процесс приготовления пытается устранить вырожденные треугольники сетки, как а также другие геометрические артефакты. В результате получается сетка, которая лучше подходит для использования в обнаружении столкновенийавтоматическом процессе, выполняемом Unity, который определяет, движется ли игровой объект с компонент Rigidbody и коллайдер вступил в контакт с любыми другими коллайдерами. Подробнее См. в Словарь и дает более точные очки жизни. |
|
Weld Colocated Vertices | Заставляет физический движок удалять одинаковые вершины в мешах. Когда включено, физический движок объединяет вершины, имеющие одинаковое положение. Это важно для обратной связи о столкновениях, которая происходит во время выполнения. | |
Use Fast Midphase | Заставляет физический движок использовать самую быструю структуру и алгоритм ускорения средней фазы, доступные для вашей платформы вывода. Когда вы включаете эту опцию, физический движок использует более быстрый алгоритм, который не требует никаких R-деревьев для пространственного доступа. Если вы столкнетесь с проблемами промежуточной фазы во время выполнения на какой-либо платформе, вы все равно можете отключить этот параметр, чтобы вместо этого использовать более медленный устаревший алгоритм промежуточной фазы.. | |
MaterialРесурс, определяющий, как должна отображаться поверхность. Подробнее См. в Словарь |
Ссылка на Физический материал, который определяет, как этот коллайдер взаимодействует с другими. | |
MeshОсновной графический примитив Unity. Меши составляют большую часть ваших 3D-миров. Unity поддерживает триангулированные или четырехугольные полигональные сетки. Поверхности Nurbs, Nurms, Subdiv должны быть преобразованы в полигоны. Подробнее См. в Словарь |
Ссылка на сетку, используемую для коллизий. |
Подробнее
Mesh Collider строит представление столкновения из Mesh, прикрепленного к GameObjectОсновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Смотрит в Словарь и читает свойства присоединенного Transform, чтобы правильно установить положение и масштаб. Преимущество этого заключается в том, что вы можете сделать форму коллайдера точно такой же, как форма видимой сетки для игрового объекта, что создает более точные и аутентичные столкновения. Однако эта точность связана с более высокими затратами на обработку, чем коллизии с участием примитивных коллайдеров (таких как Sphere, Box и Capsule), поэтому лучше использовать Mesh Colliders экономно.
Границы в сетках коллизий односторонние. Это означает, что игровые объекты могут проходить сквозь них с одной стороны, но сталкиваться с ними с другой.
Подробные сведения об основных алгоритмах и структурах данных, используемых коллайдерами сетки, можно найти по адресу Документация по PhysX.
Приготовление сетки
Приготовление сетки превращает обычную сетку в сетку, которую можно использовать в физическом движке. Cooking создает структуры пространственного поиска для физических запросов, такие как Physics.Raycast, а также вспомогательные структуры для генерации контактов. Unity готовит все меши, прежде чем использовать их для обнаружения столкновений. Это может произойти во время импорта (Настройки импорта > Модель > Создать коллайдеры) или во время выполнения.
При создании мешей во время выполнения (например, для процедурных поверхностей) полезно настроить Параметры приготовления для более быстрого получения результатов и отключить дополнительные этапы очистки данных при очистке. Недостатком является то, что вам не нужно генерировать вырожденные треугольники и совмещенные вершины, но готовка работает быстрее.
Если вы отключите Включить очистку сетки или Объединить совмещенные вершины, вам необходимо убедиться, что вы не используете данные, которые эти алгоритмы в противном случае отфильтровали бы. Убедитесь, что у вас нет совмещенных вершин, если вы отключили Объединять совмещенные вершины, а когда вы включите Включить очистку сетки, убедитесь, что нет крошечных треугольников, чьи площадь близка к нулю, нет тонких треугольников и нет огромных треугольников, площадь которых близка к бесконечности.
Примечание. Когда вы устанавливаете для параметра Cooking Options любое значение, отличное от настроек по умолчанию, это означает, что Mesh Collider должен использовать Mesh с isReadable значение true
.
Ограничения
Есть некоторые ограничения при использовании Mesh Collider:
Игровые объекты с жестким теломКомпонент, позволяющий воздействовать на игровой объект смоделированной гравитацией и другими силами. Подробнее
См. в компоненте Словарь поддерживаются только те коллайдеры сетки, которые имеют выпуклость опция включена: физический движок может моделировать только коллайдеры выпуклой сетки.
Чтобы Mesh Collider работал правильно, Mesh должен быть включен для чтения/записи при любом из следующих обстоятельств:
- Преобразование Mesh Collider имеет отрицательное масштабирование (например, (–1, 1, 1)) и сетка выпуклая.
- Преобразование Mesh Collider перекошено или сдвинуто (например, когда повернутое преобразование имеет масштабированное родительское преобразование).
- Флаги Cooking Options Mesh Collider устанавливаются на любое значение, кроме значения по умолчанию.
Не следует изменять геометрию сетки, которая используется для коллайдеров, потому что физический движок должен перестраивать внутреннюю структуру ускорения столкновений сетки каждый раз, когда вы меняете сетку. Это приводит к существенному снижению производительности. Для сеток, которые должны сталкиваться и изменяться во время выполнения, часто лучше аппроксимировать форму сетки с помощью примитивных коллайдеров, таких как капсулы, сферы и коробки.
Совет по оптимизации. Если Mesh Collider использует только Mesh, вы можете отключить NormalsНаправление, перпендикулярное поверхность сетки, представленная вектором. Unity использует нормали для определения ориентации объекта и применения затенения. Подробнее
См. в Словарь в Настройках импорта, поскольку физической системе они не нужны.
- Обновлены ограничения Mesh Collider в версии 2018.3
- Параметры приготовления сетки добавлены в версии 2017.3
- Обновленная функциональность в версии 2018.1
- Обновлены ограничения, связанные с включенным параметром чтения/записи в версии 2017.3
- Раздувание выпуклой сетки устарело в версии 2018.3, поскольку новый алгоритм вычисления выпуклой оболочки (Quickhull) более терпим к несовершенствам входной сетки.