NavigationPathQueryParameters3D
实验性: This class may be changed or removed in future versions.
继承: RefCounted < Object
为 3D 导航路径查询提供参数。
描述
更改该对象的起始和结束位置等属性可以配置对 NavigationServer3D 的路径查询。
教程
属性
|
||
|
||
|
||
BitField[PathMetadataFlags] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
枚举
enum PathfindingAlgorithm: 🔗
PathfindingAlgorithm PATHFINDING_ALGORITHM_ASTAR = 0
路径查询使用默认的 A* 寻路算法。
enum PathPostProcessing: 🔗
PathPostProcessing PATH_POSTPROCESSING_CORRIDORFUNNEL = 0
将漏斗算法应用于寻路算法找到的原始路径走廊。这将导致最短路径可能在路径走廊内。该后处理在很大程度上取决于导航网格多边形布局和创建的走廊。特别是基于图块和网格的布局,可能会由于单元格形状强加的锯齿状的路径走廊,而面临对角线移动的人工角落。
PathPostProcessing PATH_POSTPROCESSING_EDGECENTERED = 1
将路径上的所有位置在经过的导航网格多边形边缘上居中。这样就把移动限制在了单元格的中心,能够为基于图块或栅格的布局创建更好的路径。
PathPostProcessing PATH_POSTPROCESSING_NONE = 2
不进行后期处理,返回寻路算法找到的原始路径走廊。
flags PathMetadataFlags: 🔗
PathMetadataFlags PATH_METADATA_INCLUDE_NONE = 0
不要包含任何关于返回路径的额外元数据。
PathMetadataFlags PATH_METADATA_INCLUDE_TYPES = 1
包含路径上的各个点所经过的导航图元类型(地区或链接)。
PathMetadataFlags PATH_METADATA_INCLUDE_RIDS = 2
包含路径上的各个点所经过的地区和链接的 RID。
PathMetadataFlags PATH_METADATA_INCLUDE_OWNERS = 4
包含管理路径上的各个点所经过的地区和链接的 Object 的 ObjectID。
PathMetadataFlags PATH_METADATA_INCLUDE_ALL = 7
包含关于返回路径的所有可用元数据。
属性说明
Array[RID] excluded_regions = [] 🔗
将被排除在路径查询之外的区块的 RID 列表。请使用 NavigationRegion3D.get_rid() 来获取与派生自 NavigationRegion3D 的节点关联的 RID。
注意:返回的数组为副本,对其进行的修改不会更新原有属性。更新时,请先修改返回的数组,然后将其重新赋值回该属性。
Array[RID] included_regions = [] 🔗
将被排除在路径查询之外的区块的 RID 列表。请使用 NavigationRegion3D.get_rid() 来获取与派生自 NavigationRegion3D 的节点关联的 RID。如果留空则会包含所有区块。如果区块最终同时处于包含和排除状态,则会被排除。
注意:返回的数组为副本,对其进行的修改不会更新原有属性。更新时,请先修改返回的数组,然后将其重新赋值回该属性。
在路径查询中使用的导航地图 RID。
BitField[PathMetadataFlags] metadata_flags = 7 🔗
void set_metadata_flags(value: BitField[PathMetadataFlags])
BitField[PathMetadataFlags] get_metadata_flags()
包含在导航路径中的额外信息。
查询所使用的导航层(形式为位掩码)。
PathPostProcessing path_postprocessing = 0 🔗
void set_path_postprocessing(value: PathPostProcessing)
PathPostProcessing get_path_postprocessing()
对 pathfinding_algorithm 找到的原始路径走廊应用的路径后期处理。
float path_return_max_length = 0.0 🔗
返回路径允许的最大长度,单位为世界单位。路径超出该长度后会被截断。设为小于等于 0 时为禁用。
float path_return_max_radius = 0.0 🔗
返回路径从起点开始所允许的最大半径,单位为世界单位。路径超出该半径后会被截断。取值小于等于 0 时视为禁用。
注意:该属性会对路径执行球形裁剪,路径上的第一个位置是球心所在的位置。
float path_search_max_distance = 0.0 🔗
搜索通往目的位置多边形的路径时(可能不可达或非常远),取消寻路前能够搜索的多边形的最大距离。取消时,寻路会重置,构建出的路径从起始多边形开始,通往目前所找到的最接近目的位置的多边形。小于等于 0 表示不限制数量,寻路时会搜索与起始多边形相连的所有多边形,直到发现目的位置多边形或已经查过所有待查的多边形。
int path_search_max_polygons = 4096 🔗
搜索通往目的位置多边形的路径时(可能不可达或非常远),取消寻路前能够搜索的最大多边形数。取消时,寻路会重置,构建出的路径从起始多边形开始,通往目前所找到的最接近目的位置的多边形。小于等于 0 表示不限制数量,寻路时会搜索与起始多边形相连的所有多边形,直到发现目的位置多边形或已经查过所有待查的多边形。
PathfindingAlgorithm pathfinding_algorithm = 0 🔗
void set_pathfinding_algorithm(value: PathfindingAlgorithm)
PathfindingAlgorithm get_pathfinding_algorithm()
路径查询中使用的寻路算法。
float simplify_epsilon = 0.0 🔗
以世界单位表示的路径简化量。
如果为 true,将返回路径的简化版本,其中移除了不太重要的路径点。简化量由 simplify_epsilon 控制。简化使用 Ramer-Douglas-Peucker 算法的变体进行曲线点抽取。
路径简化有助于缓解使用某些代理类型和脚本行为可能出现的各种路径跟踪问题。例如“开放场”中的“转向”代理或避让。
Vector3 start_position = Vector3(0, 0, 0) 🔗
寻路起始点,使用全局坐标。
Vector3 target_position = Vector3(0, 0, 0) 🔗
寻路目标点,使用全局坐标。