Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Connecting navigation meshes

當一邊的至少兩個頂點位置完全重疊時,導覽伺服器會自動合併不同的導覽網格。

若要連接任意距離,請參閱 使用 NavigationLink

../../_images/navigation_vertex_merge.png

對於多個 NavigationPolygon 資源也是如此。只要它們的輪廓點完全重疊,導覽伺服器就會合併它們。 NavigationPolygon 輪廓必須來自不同的 NavigationPolygon 資源才能連接。

同一 NavigationPolygon 上的重疊或相交輪廓將導致導覽網格建立失敗。來自不同導覽多邊形的重疊或相交輪廓通常無法在導覽伺服器上建立導覽區域邊緣連接,因此應避免。

../../_images/navigation_vertex_merge2.png

警告

精確意味著精確地進行頂點位置合併。匯入的網格經常發生的小浮動錯誤將阻止成功的頂點合併。

Alternatively navigation meshes are not merged but still considered as connected by the NavigationServer when their edges are nearly parallel and within distance to each other. The connection distance is defined by the edge_connection_margin for each navigation map. In many cases navigation mesh edges cannot properly connect when they partly overlap. Better avoid any navigation mesh overlap at all time for a consistent merge behavior.

../../_images/navigation_edge_connection.png

如果啟用了導覽偵錯並且導覽伺服器處於活動狀態,則已建立的導覽網格連線將視覺化。有關導覽偵錯選項的更多信息,請參閱 doc_navigation_debug_tools。

“navigation/2d/default_edge_connection_margin”下的 ProjectSettings 中變更。

預設的 3D “edge_connection_margin” 可以在“navigation/3d/default_edge_connection_margin”下的 ProjectSettings 中變更。

任何導覽地圖的邊緣連線邊距值也可以在執行時使用 NavigationServer API 進行變更。

extends Node2D
# 2D margins are designed to work with "pixel" values
var default_2d_map_rid: RID = get_world_2d().get_navigation_map()
NavigationServer2D.map_set_edge_connection_margin(default_2d_map_rid, 50.0)
extends Node3D
# 3D margins are designed to work with 3D unit values
var default_3d_map_rid: RID = get_world_3d().get_navigation_map()
NavigationServer3D.map_set_edge_connection_margin(default_3d_map_rid, 0.5)

備註

更改邊緣連接邊距將觸發導覽伺服器上所有導覽網格連接的完整更新。