Nav3DObstacle
Для управления препятствиями на сцене используется компонент Nav3DObstacle. Добавьте его на игровой объект, который вы хотите сделать препятствием на сцене.
Вы увидите инспектор компонента:
В нем есть следующие настройки:
- Выбор режима обработки препятствия (обработка препятствия должна выполняться после инициализации Nav3D, чтобы оно учитывалось при поиске пути и, агенты могли его обойти во время движения):
- Runtime - препятствие будет обработано прямо во время игрового режима после инициализации Nav3D. Это может быть полезно, если препятствие генерируется во время игрового режима.
- Load from binary - препятствие будет загружено из заранее заготовленного бинарного файла. Во многих случаях обстановка игровой сцены известна заранее, еще до загрузки сцены и инициализации Nav3D. В таких случаях всегда имеет смысл запекать препятствия сцены в режиме редактора, а на старте сцены загружать их из бинарного файла. Загрузка из бинарного файла всегда гораздо быстрее, чем обработка препятствия непосредственно в игровом режиме (runtime).
- Auto add child transforms - если включено, то для всех детей transform дерева будет совершен сбор информации о компонентах MeshFilter и Terrain. И все дети, имеющие данные компоненты, будут учтены при обработке препятствия *If you want any child element of an obstacle containing a MeshFilter or Terrain not to be taken into account when constructing the navigation graph, then attach the Nav3DObstacleIgnoreTag component to it.
- Update automatically on transform change - если включено, то в случае изменения положения, поворота или масштаба transform компонента препятствия, будет выполняться его повторная обработка чтобы актуализировать граф поиска. (Препятствие будет сначала удалено из хранилища препятствий, затем будет повторно обработано и добавлено в него).Данная функция доступна для использования только для препятствий с выбранным Runtime режимом обработки.
*Поскольку добавление препятствия всегда длительная процедура, то слишком частое обновление препятствия может плохо сказаться на производительности. Рекомендуем использовать эту функцию для небольших, находящихся отдельно препятствий
- Update min period - как часто должно обновляться препятствие (в секундах) при включенном параметре “Update automatically on transform change”
Для runtime-препятствий возможно их удаление/повторное добавление в хранилище прямо во время игры. Добавление происходит при срабатывании OnEnable(), удаление происходит при срабатывании OnDisable(). Соответственно, любое runtime-препятствие, созданное на сцене во время игры будет обработано и добавлено в хранилище. Если вы удалите или отключите игровой объект препятствия, то оно удалится из хранилища. Повторное включение препятствия вновь добавить его в хранилище.