Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Инструменты отладки навигации
Примечание
Инструменты отладки, свойства и функции доступны только в отладочных сборках Godot. Не используйте их в коде, который будет частью релизной сборки.
Включение отладки навигации
Визуализация отладочной навигации включена по умолчанию в редакторе. Чтобы визуализировать навигационные сетки и соединения во время выполнения, включите опцию Visible Navigation в меню Debug редактора.
В отладочных сборках Godot отладку навигации также можно переключать через синглтоны NavigationServer из скриптов.
NavigationServer2D.set_debug_enabled(false)
NavigationServer3D.set_debug_enabled(true)
NavigationServer2D.SetDebugEnabled(false);
NavigationServer3D.SetDebugEnabled(true);
Визуализация отладки в настоящее время основана на узлах в SceneTree. Если API NavigationServer2D или NavigationServer3D используются исключительно, то изменения не будут отражены инструментами навигации отладки.
Настройки Отладки Навигации
Внешний вид "отладки навигации" можно изменить в настройках проекта в разделе debug/shapes/navigation. Некоторые функции отладки также можно включать и отключать по желанию, но для их вступления в силу может потребоваться перезапуск сцены.
Отладка полигонов навигационной сетки
Если включено enable_edge_lines, края полигонов навигационной сетки будут подсвечены. Если также включено enable_edge_lines_xray, края полигонов навигационной сетки будут видны сквозь геометрию.
Если включено enable_geometry_face_random_color, цвет каждой грани навигационной сетки будет смешан со случайным цветом, который, в свою очередь, смешан с цветом, указанным в geometry_face_color.
Отладка граничных соединений
При соединении двух навигационных сеток на расстоянии edge_connection_margin соединение накладывается. Цвет наложения определяется параметром edge_connection_color. Соединения можно сделать видимыми через геометрию с помощью параметра enable_edge_connections_xray.
Примечание
Соединения Edge видны только тогда, когда активен NavigationServer.
Производительность отладки
Для измерения производительности NavigationServer существует специальный монитор, который можно найти в отладчике редактора в разделе Debugger->Monitors->Navigation Process.
Navigation Process показывает, сколько времени NavigationServer тратит на обновление своих внутренних данных в этом кадре обновления (в миллисекундах). Navigation Process работает аналогично Process для визуального рендеринга кадров и Physics Process для столкновений и фиксированных обновлений.
Navigation Process учитывает все обновления навигационных карт, навигационных регионов и навигационных агентов, а также все расчеты уклонения для кадра обновления.
Примечание
Navigation Process НЕ включает в себя производительность поиска пути, поскольку поиск пути выполняется на основе данных навигационной карты независимо от обновления процесса сервера.
В целом, для обеспечения производительности во время выполнения следует поддерживать максимально низкий уровень и стабильность Navigation Process, чтобы избежать проблем с частотой кадров. Обратите внимание, что, поскольку обновление процесса NavigationServer происходит в середине обновления физики, увеличение значения Navigation Process автоматически увеличит значение Physics Process на ту же величину.
Навигация также предоставляет более подробную статистику о текущих объектах, связанных с навигацией, и составе навигационной карты на NavigationServer.
Приведенную здесь статистику навигации нельзя оценить как хорошую или плохую с точки зрения производительности, поскольку все зависит от проекта: что можно считать разумным, а что — ужасно чрезмерным.
Статистика навигации помогает выявить узкие места производительности, которые менее очевидны, поскольку их источник не всегда может быть наглядно представлен. Например, проблемы с производительностью поиска пути, вызванные чрезмерно подробными навигационными сетками с тысячами рёбер/полигонов, или проблемы, вызванные сбоями в процедурной навигации.