导航调试工具

备注

调试工具、调试属性、调试函数都只在调试版本的 Godot 中可用,请勿在发布版本的代码中使用。

启用调试导航

默认情况下,导航调试可视化在编辑器中启用。若要在运行时可视化导航网格和连接,请在编辑器 Debug 菜单中启用选项 Visible Navigation

../../_images/navigation_debug_toggle.png

在Godot调试构建中,导航调试也可以通过脚本中的NavigationServer单例进行切换。

GDScript

  1. NavigationServer2D.set_debug_enabled(false)
  2. NavigationServer3D.set_debug_enabled(true)

Debug visualizations are currently based on Nodes in the SceneTree. If the NavigationServer2D or NavigationServer3D APIs are used exclusively then changes will not be reflected by the debug navigation tools.

导航调试设置

导航调试的外观可以在 debug/shapes/navigation 下的ProjectSettings中更改。某些调试功能也可以随意启用或禁用,但可能需要重新启动场景才能生效。

../../_images/nav_debug_settings.png

调试导航网格多边形

如果启用了 enable_edge_lines ,则导航网格多边形的边将高亮显示。如果还启用了 enable_edge_lines_xray ,则导航网格的边将通过几何体可见。

如果启用了 enable_geometry_face_random_color ,则每个导航网格面的颜色将与随机颜色混合,该随机颜色本身与 geometry_face_color 中指定的颜色混合。

../../_images/nav_debug_xray_edge_lines.png

调试边缘连接

当两个 navigation 网格在 edge_connection_margin 距离内连接时,连接被覆盖。覆盖层的颜色由 edge_connection_color 控制。可以使用 enable_edge_connections_xray 使连接通过几何图形可见。

../../_images/nav_edge_connection2d.gif ../../_images/nav_edge_connection3d.gif

备注

只有当NavigationServer处于活动状态时,边缘连接才可见。

调试性能

要测试NavigationServer性能,可以在编辑器调试器中的 Debugger->Monitors->Navigation Process 下找到一个专用监视器。

../../_images/navigation_debug_performance1.webp

Navigation Process以毫秒为单位显示NavigationServer更新其内部的时间。导航过程的工作原理类似于视觉帧渲染过程和碰撞和固定更新的物理过程。

Navigation Process负责对 navigation mapsnavigation regions**和 **navigation agents 的所有更新,以及更新帧的所有 avoidance calculations

备注

导航进程不包括寻路性能,因为寻路操作独立于服务器进程更新的导航地图数据。

一般情况下,导航进程应尽可能保持低的运行时性能和稳定,以避免帧速率问题。请注意,由于NavigationServer进程更新发生在物理更新的中间,因此Navigation进程的增加将自动使物理进程增加相同的量。

导览还提供了关于目前导览相关物件和导览服务器上导览地图组成的更详细的统计数据。

../../_images/navigation_debug_performance2.webp

此处显示的导览统计数据无法判断性能的好坏,因为它完全取决于项目什么可以被认为是合理的或严重过度的。

导览统计信息有助于识别不太明显的性能瓶颈,因为来源可能并不总是具有可见的表示形式。例如,由具有数千个边/多边形的过于详细的导览网格所建立的寻路性能问题,或由程序导览出错所引起的问题。