NavigationRegion2D
实验性: This class may be changed or removed in future versions.
继承: Node2D < CanvasItem < Node < Object
可达的 2D 地区,NavigationAgent2D 能够将其用于寻路。
描述
可达的 2D 地区,基于 NavigationPolygon,NavigationAgent2D 能够将其用于寻路。
两个地区如果存在相近的边就可以互相连接。连接两条边所需的顶点最小间距可以通过 NavigationServer2D.map_set_edge_connection_margin() 设置。
注意:两个地区存在重叠部分并不足以让它们相连。必须有相近的边。
从一个地区进入另一个地区的寻路成本可以使用 enter_cost 控制。
注意:起点位于该地区时,这个值不计入路径成本。
在该地区中行进的寻路成本可以使用乘数 travel_cost 控制。
注意:该节点会对这些属性进行缓存,因此,你在 NavigationServer2D 中对底层的地区 RID 进行的修改不会在该节点的属性中。
教程
属性
|
||
|
||
|
||
|
||
|
方法
void |
bake_navigation_polygon(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_polygon_changed() 🔗
当使用的导航多边形被替换或对当前导航多边形内部的更改被提交时发出。
属性说明
决定该 NavigationRegion2D 是启用还是禁用。
当寻路从另一个区块的导航网格进入该区块的导航网格时,enter_cost 值将被加到路径距离,以确定最短路径。
确定该区块所属的所有导航层的位字段。当使用 NavigationServer2D.map_get_path() 请求一个路径时,可以检查这些导航层。
NavigationPolygon navigation_polygon 🔗
void set_navigation_polygon(value: NavigationPolygon)
NavigationPolygon get_navigation_polygon()
使用的 NavigationPolygon 资源。
当寻路在该区块的导航网格内移动时,将行进距离乘以 travel_cost 以确定最短路径。
bool use_edge_connections = true 🔗
如果启用,导航区块将使用边缘连接来与位于导航地图连接边距范围内的其他导航区块相连接。
方法说明
void bake_navigation_polygon(on_thread: bool = true) 🔗
烘焙该 NavigationPolygon。如果 on_thread 被设置为 true(默认),则烘焙将在单独的线程上完成。
返回区块中变换后的导航网格对应的轴对齐矩形。
bool get_navigation_layer_value(layer_number: int) const 🔗
返回 navigation_layers 位掩码中指定的层是否启用,给定的 layer_number 应在 1 和 32 之间。
RID get_navigation_map() const 🔗
返回该区块使用的当前导航地图 RID。
已弃用: Use get_rid() instead.
返回 NavigationServer2D 上该区块的 RID。
返回 NavigationServer2D 上该区块的 RID。结合 NavigationServer2D.map_get_closest_point_owner() 可用于识别合并导航地图上离某点最近的 NavigationRegion2D。
当 NavigationPolygon 正在后台线程上烘焙时,返回 true。
void set_navigation_layer_value(layer_number: int, value: bool) 🔗
根据 value,启用或禁用 navigation_layers 位掩码中指定的层,给定的 layer_number 应在 1 和 32 之间。
void set_navigation_map(navigation_map: RID) 🔗
设置该区块应使用的导航地图的 RID。默认情况下,该区块会自动加入 World2D 默认导航地图,因此该函数只需要覆盖默认地图即可。