NavigationPathQueryParameters2D

实验性: This class may be changed or removed in future versions.

继承: RefCounted < Object

为 2D 导航路径查询提供参数。

描述

更改该对象的起始和结束位置等属性可以配置对 NavigationServer2D 的路径查询。

教程

属性

RID

map

RID()

BitField[PathMetadataFlags]

metadata_flags

7

int

navigation_layers

1

PathPostProcessing

path_postprocessing

0

PathfindingAlgorithm

pathfinding_algorithm

0

float

simplify_epsilon

0.0

bool

simplify_path

false

Vector2

start_position

Vector2(0, 0)

Vector2

target_position

Vector2(0, 0)


枚举

enum PathfindingAlgorithm: 🔗

PathfindingAlgorithm PATHFINDING_ALGORITHM_ASTAR = 0

路径查询使用默认的 A* 寻路算法。


enum PathPostProcessing: 🔗

PathPostProcessing PATH_POSTPROCESSING_CORRIDORFUNNEL = 0

将漏斗算法应用于寻路算法找到的原始路径走廊。这将导致最短路径可能在路径走廊内。该后处理在很大程度上取决于导航网格多边形布局和创建的走廊。特别是基于图块和网格的布局,可能会由于单元格形状强加的锯齿状的路径走廊,而面临对角线移动的人工角落。

PathPostProcessing PATH_POSTPROCESSING_EDGECENTERED = 1

将路径上的所有位置在经过的导航网格多边形边缘上居中。这样就把移动限制在了单元格的中心,能够为基于图块或栅格的布局创建更好的路径。


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

包含管理路径上的各个点所经过的地区和链接的 ObjectObjectID

PathMetadataFlags PATH_METADATA_INCLUDE_ALL = 7

包含关于返回路径的所有可用元数据。


属性说明

RID map = RID() 🔗

  • void set_map(value: RID)

  • RID get_map()

在路径查询中使用的导航地图 RID


BitField[PathMetadataFlags] metadata_flags = 7 🔗

包含在导航路径中的额外信息。


int navigation_layers = 1 🔗

  • void set_navigation_layers(value: int)

  • int get_navigation_layers()

查询所使用的导航层(形式为位掩码)。


PathPostProcessing path_postprocessing = 0 🔗

pathfinding_algorithm 找到的原始路径走廊应用的路径后期处理。


PathfindingAlgorithm pathfinding_algorithm = 0 🔗

路径查询中使用的寻路算法。


float simplify_epsilon = 0.0 🔗

  • void set_simplify_epsilon(value: float)

  • float get_simplify_epsilon()

以世界单位表示的路径简化量。


bool simplify_path = false 🔗

  • void set_simplify_path(value: bool)

  • bool get_simplify_path()

如果为 true,将返回路径的简化版本,其中移除了不太重要的路径点。简化量由 simplify_epsilon 控制。简化使用 Ramer-Douglas-Peucker 算法的变体进行曲线点抽取。

路径简化有助于缓解使用某些代理类型和脚本行为可能出现的各种路径跟踪问题。例如“开放场”中的“转向”代理或避让。


Vector2 start_position = Vector2(0, 0) 🔗

  • void set_start_position(value: Vector2)

  • Vector2 get_start_position()

寻路起始点,使用全局坐标。


Vector2 target_position = Vector2(0, 0) 🔗

  • void set_target_position(value: Vector2)

  • Vector2 get_target_position()

寻路目标点,使用全局坐标。