NavigationRegion3D
可达的 3D 地区,NavigationAgent3D 能够将其用于寻路。
描述
可达的 3D 地区,基于 NavigationMesh,NavigationAgent3D 能够将其用于寻路。
两个地区如果存在相近的边就可以互相连接。连接两条边所需的顶点最小间距可以通过 NavigationServer3D.map_set_edge_connection_margin 设置。
注意:两个地区存在重叠部分并不足以让它们相连。必须有相近的边。
从一个地区进入另一个地区的寻路成本可以使用 enter_cost 控制。
注意:起点位于该地区时,这个值不计入路径成本。
在该地区中行进的寻路成本可以使用乘数 travel_cost 控制。
注意:该节点会对这些属性进行缓存,因此,你在 NavigationServer3D 中对底层的地区 RID 进行的修改不会在该节点的属性中。
教程
属性
| ||
| ||
| ||
| ||
|
方法
void | bake_navigation_mesh ( bool on_thread=true ) |
get_navigation_layer_value ( int layer_number ) const | |
get_navigation_map ( ) const | |
get_region_rid ( ) const | |
get_rid ( ) const | |
void | set_navigation_layer_value ( int layer_number, bool value ) |
void | set_navigation_map ( RID navigation_map ) |
信号
bake_finished ( )
导航网格烘焙操作完成时发出通知。
navigation_mesh_changed ( )
NavigationMesh 发生变化时发出通知。
属性说明
bool enabled = true
决定该 NavigationRegion3D 是启用还是禁用。
float enter_cost = 0.0
当寻路从另一个区块的导航网格进入该区块的导航网格时,enter_cost 值将被加到路径距离,以确定最短路径。
int navigation_layers = 1
确定该区块所属的所有导航层的位字段。当使用 NavigationServer3D.map_get_path 请求一个路径时,可以检查这些导航层。
NavigationMesh navigation_mesh
void set_navigation_mesh ( NavigationMesh value )
NavigationMesh get_navigation_mesh ( )
使用的 NavigationMesh 资源。
float travel_cost = 1.0
当寻路在该区块的导航网格内移动时,将行进距离乘以 travel_cost 以确定最短路径。
bool use_edge_connections = true
如果启用,导航区块将使用边缘连接来与位于导航地图连接边距范围内的其他导航区块相连接。
方法说明
void bake_navigation_mesh ( bool on_thread=true )
烘焙该 NavigationMesh。如果 on_thread
被设置为 true
(默认),则该烘焙将在单独的线程上完成。独立线程烘焙很有用,因为导航烘焙不是一项廉价的操作。完成后,它会自动设置新的 NavigationMesh。请注意,如果几何体是从网格解析而来的,则独立线程烘焙可能会非常慢,因为对每个网格的异步访问会涉及大量同步操作。另外,请注意在无法使用线程的操作系统(例如禁用线程的 Web)上,会自动禁用独立线程烘焙。
bool get_navigation_layer_value ( int layer_number ) const
返回 navigation_layers 位掩码中指定的层是否启用,给定的 layer_number
应在 1 和 32 之间。
RID get_navigation_map ( ) const
返回该区块使用的当前导航地图 RID。
RID get_region_rid ( ) const
返回 NavigationServer3D 上该区块的 RID。
已废弃。请改用 get_rid。
RID get_rid ( ) const
返回 NavigationServer3D 上该区块的 RID。结合 NavigationServer3D.map_get_closest_point_owner 可用于识别距离该合并导航地图上的点最近的 NavigationRegion3D。
void set_navigation_layer_value ( int layer_number, bool value )
根据 value
,启用或禁用 navigation_layers 位掩码中指定的层,给定的 layer_number
应在 1 和 32 之间。
void set_navigation_map ( RID navigation_map )
设置该区块应使用的导航地图的 RID。默认情况下,该区块会自动加入 World3D 默认导航地图,因此该函数只需要覆盖默认地图即可。
© 版权所有 2014-present Juan Linietsky, Ariel Manzur and the Godot community (CC BY 3.0). Revision b1c660f7
.
Built with Sphinx using a theme provided by Read the Docs.