Компоненты NavMeshAgent помогают создавать персонажей, которые избегают друг друга, двигаясь к своей цели. Агенты рассуждают об игровом мире, используя NavMeshсетку, которую Unity генерирует для аппроксимации проходимых областей и препятствий в вашей среде для поиска пути. и навигация под управлением ИИ. Подробнее
Посмотрите в Словарь и они знают, как избегать друг друга, а также других движущихся препятствия. Поиск пути и пространственное мышление обрабатываются с помощью API сценариев агента NavMesh.
Свойства
Свойства | Функции |
---|---|
Agent Size | |
Radius | Радиус агента, используемый для расчета столкновенийСтолкновение происходит, когда физический движок обнаруживает, что коллайдеры двух игровых объектов соприкасаются или перекрываются , когда хотя бы один имеет компонент Rigidbody и находится в движении. Подробнее Смотрите в Словарь между препятствиями и другими агентами. |
Height | Высота, необходимая агенту для преодоления препятствия над головой. |
Base offset | Смещение цилиндра столкновения относительно точки поворота преобразования. |
Steering | |
Speed | Максимальная скорость передвижения (в мировых единицах в секунду). |
Angular Speed | Максимальная скорость вращения (градусов в секунду). |
Acceleration | Максимальное ускорение (в мировых единицах на секунду в квадрате). |
Stopping distance | Агент остановится, когда это близко к целевому местоположению. |
Auto Braking | Если этот параметр включен, агент будет замедляться при достижении пункта назначения. Вы должны отключить это для поведения, такого как патрулирование, когда агент должен плавно перемещаться между несколькими точками. |
Obstacle Avoidance | |
Quality | Качество уклонения от препятствий. Если у вас большое количество агентов, вы можете сэкономить процессорное время, уменьшив качество обхода препятствий. Установка уклонения на none будет разрешать только столкновение, но не будет пытаться активно избегать других агентов и препятствий. |
Priority | Агенты с более низким приоритетом будут игнорироваться этим агентом при выполнении уклонения. Значение должно находиться в диапазоне от 0 до 99, где более низкие числа указывают на более высокий приоритет. |
Path Finding | |
Auto Traverse OffMesh Link | Установите значение true, чтобы автоматически перемещаться по ссылкам вне сетки. Вы должны отключить это, если хотите использовать анимацию или какой-либо особый способ перемещения по ссылкам вне сетки. |
Auto Repath | Если этот параметр включен, агент попытается снова найти путь, когда достигнет конца частичного пути. Если пути к месту назначения нет, создается частичный путь к ближайшему достижимому местоположению к месту назначения. |
Area Mask | Маска области описывает, какие типы областей будут учитываться агентом при поиске пути. Когда вы готовите сетки для запекания NavMesh, вы можете установить тип области каждой сетки. Например, вы можете пометить лестницу специальным типом области и запретить некоторым типам персонажей использовать лестницу. |
Подробнее
Агент определяется вертикальным цилиндром, размер которого определяется свойствами Radius и Height. Цилиндр движется вместе с объектом, но всегда остается в вертикальном положении, даже если сам объект вращается. Форма цилиндра используется для обнаружения и реагирования на столкновения между другими агентами и препятствиями. Когда GameObjectосновной объект в сценах Unity, который может представлять персонажей, реквизит, декорации, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
См. в Словарь, точка привязки не находится в основании цилиндра, вы можете использовать свойство Base Offset, чтобы компенсировать разницу в высоте.
Высота и радиус цилиндра задаются в двух разных местах: в настройках запекания NavMesh и в свойствах отдельных агентов. .
- Настройки запекания NavMesh описывают, как все агенты NavMesh сталкиваются со статической геометрией мира или избегают ее. Чтобы сохранить память в рамках бюджета и контролировать загрузку ЦП, в настройках выпечки можно указать только один размер.
- Значения Свойства агента NavMesh описывают, как агент сталкивается с движущимися препятствиями и другими агентами.
Чаще всего размер агента устанавливается одинаковым в обоих местах. Но, например, тяжелый солдат может иметь больший радиус, чтобы другие агенты оставляли вокруг него больше места, а в остальном он все равно будет избегать окружения.
Дополнительная литература
- Создание агента NavMesh — рабочий процесс создания агента NavMesh.
- Внутренняя работа навигационной системы – узнайте больше о том, как препятствия используются в навигации.
- Справочник по сценариям агента NavMesh — полное описание API сценариев NavMeshAgent.