NavMeshSurface
NavMesh Surface
Компонент NavMesh Surface представляет из себя проходимую область для определённого типа агентов NavMesh, и определяет часть Сцены, где должен быть построен NavMesh.
Компонент NavMesh Surface отсутствует в стандартной установке Unity; чтобы получить к нему доступ смотри документацию по высокоуровневым компонентам сборки NavMesh.
Чтобы использовать компонент NavMesh Surface выберите меню GameObject > AI > NavMesh Surface. В результате создаётся пустой игровой объект с прикреплённым к нему компонентом NavMesh Surface. Сцена может содержать множество компонентов NavMesh Surface.
Вы можете добавить компонент NavMesh Surface к любому игровому объекту. Это полезно когда вы хотите использовать родительскую иерархию GameObject чтобы определить какие игровые объекты воздействуют на NavMesh.

Свойство | Назначение |
---|---|
Agent Type | Тип агента NavMesh, использующего поверхность NavMesh Surface. Используется для настройках запекания и сопоставления агента NavMesh с соответствующими поверхностями во время поиска пути. - Humanoid - Ogre |
Collect Objects | Определяет, какие игровые объекты используются для запекания. - All – Используются все активные GameObjects (эта опция по умолчанию). - Volume – Используются все активные GameObject, пересекающие границы объёма. - Children – Используется все активные GameObject, дочерние к компоненту NavMesh Surface. |
Include Layers | Определяет слои, GameObject'ы из которых учавствуют в запекании. В добавок к Collect Objects, эта настройка позволяет дополнительно исключить определенные GameObjects из запекания (например, эффекты или анимированные персонажи). По умолчанию здесь стоит Everything, но вы можете включить или выключить следующие опции по отдельности: - Nothing (автоматически отключает все опции) - Everything (автоматически включает все опции) - Default - TransparentFX - Ignore Raycast - Water - UI |
Use Geometry | Выбирает, какую геометрию использовать для запекания. - Render Meshes – Использует геометрию отображаемых мешей и местности. - Physics Colliders – Использует геометрию коллайдеров и местности. Агенты могут двигаться ближе к краю физических границ среды с помощью этой опции, чем они могут с помощью опции Render Meshes. |
Используйте основные настройки компонента NavMesh Surface для фильтрации входной геометрии в широком диапазоне. Точно настройте, как Unity обрабатывает входную геометрию на основе каждого объекта GameObject, используя компонент NavMesh Modifier.
Процесс запекания автоматически исключает GameObjects с присоединенными NavMesh Agent или NavMesh Obstracle. Они являются динамическими пользователями NavMesh и поэтому не вносят вклад в сборку NavMesh.
Расширенные настройки

В разделе расширенных настроек вы можете настроить следующие дополнительные параметры:
Свойство | Назначение |
---|---|
Default Area | Определяет тип области, генерируемый при сборке NavMesh. - Walkable (эта опция по умолчанию) - Not Walkable - Jump Используйте компонент NavMesh Modifier для более детального изменения типа области. |
Override Voxel Size | Контролирует, насколько точно Unity обрабатывает входную геометрию для выпечки NavMesh (это компромисс между скоростью и точностью). Установите флажок, чтобы включить. Значение по умолчанию не отмечено (отключено). 3 вокселя на радиус Агента (6 на диаметр) позволяют захватывать узкие проходы, такие как двери, при сохранении быстрого времени выпекания. Для больших открытых зон использование 1 или 2 вокселей на радиус ускоряет выпечку. Плотные внутренние пятна лучше подходят для небольших вокселов, например от 4 до 6 вокселей на радиус. Более 8 вокселей на радиус обычно не приносят много дополнительного преимущества. |
Override Tile Size | Чтобы сделать процесс выпекания параллельным и эффективным для памяти, Сцена разделена на плитки для выпечки. Белые линии, видимые на NavMesh, являются границами плитки. Размер плитки по умолчанию - 256 вокселей, что обеспечивает хороший компромисс между использованием памяти и фрагментацией NavMesh. Чтобы изменить размер плитки по умолчанию, отметьте этот флажок и в поле Tile Size введите количество вокселей, которые вы хотите, чтобы размер плитки был. Чем меньше плитка, тем более фрагментирован NavMesh. Иногда это может привести к неоптимальным путям. Резьба NavMesh также работает на плитки. Если у вас много препятствий, вы можете часто ускорять резку, уменьшая размер плитки (например, от 64 до 128 вокселей). Если вы планируете выпекать NavMesh во время выполнения, используйте меньший размер плитки, чтобы поддерживать максимальное использование памяти. |
Build Height Mesh | Не поддерживается. |
Расширенная отладка визуализации


Используйте параметры в разделе Debug Visualization для диагностики любых проблем, возникающих в процессе построения NavMesh. Различные тикбоксы показывают каждый шаг процесса построения NavMesh, включая входную геометрию ввода (Input Geometry), разбиение областей (Regions), формирование контуров (Contours) и полигонов NavMesh (Polygon Meshes).