NavigationRegion¶
实验性: This class may be changed or removed in future versions.
NavigationAgent3D可用于寻路的可遍历3D区域。
描述¶
NavigationAgent3D可用于寻路的基于NavigationMesh的可遍历3D区域。
如果两个区域共享相似的边,它们可以相互连接。您可以使用NavigationServer3D.map_set_edge_connection_margin()设置连接两条边所需的两个顶点之间的最小距离。
注意:重叠两个区域的导航网格不足以连接两个区域。它们必须共享相似的边缘。
从另一个区域进入该区域的成本可以用enter_cost值来控制。
注意:当起始位置已经在此区域内时,此值不会添加到路径成本中。
该区域内的旅行距离成本可以通过travel_cost乘数来控制。
注意:此节点缓存对其属性的更改,因此如果您对NavigationServer3D中的基础区域RID进行更改,它们将不会反映在此节点的属性中。
属性¶
|
||
|
||
|
||
|
||
|
方法¶
void |
bake_navigation_mesh(on_thread: bool = true) |
get_bounds() const |
|
get_navigation_layer_value(layer_number: int) const |
|
get_navigation_map() const |
|
get_region_rid() const |
|
get_rid() const |
|
is_baking() const |
|
void |
set_navigation_layer_value(layer_number: int, value: bool) |
void |
set_navigation_map(navigation_map: RID) |
信号¶
bake_finished() 🔗
当导航网格烘焙操作完成时通知。
navigation_mesh_changed() 🔗
通知NavigationMesh何时更改。
属性说明¶
确定是启用还是禁用NavigationRegion。
当寻路从另一个区域的导航网格进入该区域的导航网格时,enter_cost值被添加到路径距离中,用于确定最短路径。
确定区域所属的所有导航层的位域。当使用NavigationServer3D.map_get_path()请求路径时,可以检查这些导航层。
NavigationMesh navigation_mesh 🔗
void set_navigation_mesh(value: NavigationMesh)
NavigationMesh get_navigation_mesh()
要使用的NavigationMesh资源。
当寻路在该区域的导航网格内移动时,行进距离乘以travel_cost以确定最短路径。
bool use_edge_connections = true 🔗
如果启用,导航区域将使用边缘连接与导航地图边缘连接边距内的其他导航区域连接。
方法说明¶
void bake_navigation_mesh(on_thread: bool = true) 🔗
烘焙NavigationMesh。如果on_thread设置为true(默认),则烘焙在单独的线程上完成。在单独的线程上烘焙很有用,因为导航烘焙不是一个便宜的操作。完成后,它会自动设置新的NavigationMesh。请注意,如果从网格解析几何,则在单独的线程上烘焙可能会非常慢,因为对每个网格的异步访问涉及大量同步。此外,请注意,在不能使用线程的操作系统(例如禁用线程的Web)上,在单独的线程上烘焙会自动禁用。
返回区域转换后的导航网格的轴对齐边界框。
bool get_navigation_layer_value(layer_number: int) const 🔗
返回是否启用navigation_layers位掩码的指定层,给定介于1和32之间的layer_number。
RID get_navigation_map() const 🔗
返回该区域使用的当前导航地图RID。
已弃用: 改用 get_rid()。
返回NavigationServer3D上此区域的RID。
返回NavigationServer3D上该区域的RID。结合NavigationServer3D.map_get_closest_point_owner()可用于识别合并导航地图上最接近点的NavigationRegion。
当NavigationMesh在后台线程上烘焙时返回true。
void set_navigation_layer_value(layer_number: int, value: bool) 🔗
基于value,启用或禁用navigation_layers位掩码中的指定层,给定介于1和32之间的layer_number。
void set_navigation_map(navigation_map: RID) 🔗
设置此区域应使用的导航地图的RID。默认情况下,该区域将自动加入World3D默认导航地图,因此仅需要此功能来覆盖默认地图。