導航除錯工具
備註
除錯工具、屬性與函式僅在 Godot 除錯版本中可用。請勿在正式發行版本的程式碼中使用這些功能。
啟用導航除錯
編輯器內預設啟用導航除錯視覺化。若要在執行時也顯示導航網格與連線,請在編輯器的 除錯 選單中啟用 顯示導航 選項。
在 Godot 除錯版本中,也可以透過腳本使用 NavigationServer 單例來切換導航除錯。
NavigationServer2D.set_debug_enabled(false)
NavigationServer3D.set_debug_enabled(true)
NavigationServer2D.SetDebugEnabled(false);
NavigationServer3D.SetDebugEnabled(true);
目前的導航除錯視覺化是依據場景樹中的節點(Node)。如果僅透過 NavigationServer2D 或 NavigationServer3D API 來操作,則這些變更不會反映在導航除錯工具中。
導航除錯設定
導航除錯的外觀可在專案設定(ProjectSettings)中的 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 使連線在幾何物件後方也可見。
備註
僅當 NavigationServer 處於啟用狀態時,邊緣連線才會顯示。
效能除錯
要檢視 NavigationServer 的效能,可透過編輯器除錯器中的 除錯器->監視器->導航處理 找到專屬監控項目。
「導航處理」顯示 NavigationServer 在這個更新影格中花費多少毫秒進行內部更新。其運作方式類似於處理(Process)用於視覺影格算繪,以及物理處理(Physics Process)用於碰撞與固定更新。
導航處理包括對所有「導航地圖」、「導航區域」與「導航代理」的更新,以及本更新影格的所有「避障計算」。
備註
導航處理(Navigation Process)**不**包含尋路(pathfinding)的效能,因為尋路作業會獨立於伺服器處理程序,在導航地圖資料上進行。
導航處理應盡量保持低且穩定,以避免執行時的效能問題,如影格率下降。請注意,由於 NavigationServer 的處理更新發生在物理更新中間,導航處理增加時也會同步增加物理處理(Physics Process)所耗費的時間。
導航系統同時也會在 NavigationServer 上,提供目前導航相關物件與導航地圖組成的更詳細統計數據。
此處顯示的導航統計資料無法單純判斷效能好壞,因為合理或過度的標準,完全依賴各自的專案需求而定。
導航統計資訊有助於找出那些不易察覺的效能瓶頸,因為問題來源未必有明顯表現。例如:由數千邊或多邊形組成的過度複雜導航網格導致的尋路效能問題,或是程序化導航失誤產生的問題。