Nav3DObstacleLoader
Для использования возможности предзапекания препятствий на сцене в режиме редактора и последующей их загрузки из бинарного файла используется компонент Nav3DObstacleLoader. Вы можете создать его на сцене, используя следующую кнопку верхнего меню:
На сцене появится следующий игровой объект:
Для всех препятствий на сцене, которые вы хотите запечь, выберите режим обработки Load from binary
Далее в инспекторе компонента Nav3DObstacleLoader вы сможете увидеть список всех игровых объектов с компонентом Nav3DObstacle, подлежащих запеканию.
Нажмите кнопку “Bake and serialize obstacles” и выберите папку в проекте для сохранения бинарного файла с запеченными данными о препятствиях на сцене.
После успешного запекания инспектор компонента Nav3DObstacleLoader примет такой вид:
Инспектор успешно сериализованных Nav3DObstacle будет иметь такой вид:
Теперь в игровом режиме при инициализации Nav3D навигационные графы всех запеченных препятствиях на сцене будут загружены из бинарного файла.
Есть важная особенность касающееся игровых объектов для которых включен статический батчинг. При загрузке навигационного графа из бинарного файла, Nav3DObstacleLoader
пытается проверить соответствие данных в бинарном файле и текущих параметров препятствия на сцене (структура иерархии transform, поля transform компонентов, наличие валидного меша в MeshFilter, и прочее). Данная проверка нужна чтобы выкинуть исключение и тем самым уведомить пользователя, что запеченный навигационный файл стал неактуальным, поскольку препятствие было изменено после сохранения бинарного файла. В случае включенного статического батчинга для группы препятствий, валидация никогда не будет успешной, поскольку нельзя получить доступ к мешу препятствия. Так что мы добавили возможность отключения валидации. Для этого в инспекторе Nav3DObstacleLoader
снимите галочку “Validate serialized data”.