который надо запекать в эдиторе после внесения изменений в сам уровень. но простое нажатие на кнопку bake мне не подходит, мне сначала надо отключить некоторые обьекты в сцене, потом только запечь, а потом вернуть те обьекты обратно.
я это делал через скрипт (через контекстное меню), обращался к NavMeshSurface и вызывал у него BuildNavMesh(), но он не вносил никакие изменения вне сцены и в сцену, то есть после перезапуска сцены всё слетало. Насколько я понял, то кнопка Bake в инспекторе в компоненте NavMeshSurface билдит навмеш и записывает в файл (типа NavMeshData) в проекте, а вот вызов BuildNavMesh() ничего такого не делает, в этом и вся проблема. Надо сбилдить навмеш через скрипт и записаеть его в файл
У меня получилось билдить навмеш и записать его в NavMeshData и NavMeshDataInstance, но как его записать в файл я не понимаю
оказалось вместо BuildNavMesh() надо было использовать UpdateNavMesh() и передать туда NavMeshData, то есть файл, который надо перезаписать. У меня это получилось так: navMeshSurface.UpdateNavMesh(navMeshSurface.navMeshData); где navMeshSurface это компонент типа NavMeshSurface
Обсуждают сегодня