NavigationLink2D

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

继承: Node2D < CanvasItem < Node < Object

连接两个位于 NavigationRegion2D 上的位置的链接,导航时能够让代理走这个链接。

描述

连接两个位于 NavigationRegion2D 上的位置的链接,导航时能够让代理走这个链接。这两个位置可以在同一个 NavigationRegion2D 上,也可以是在两个不同的区块上。链接可以用来表达沿着导航多边形表面行进以外的导航方法,例如滑锁、传送、跳过沟壑等等。

教程

属性

bool

bidirectional

true

bool

enabled

true

Vector2

end_position

Vector2(0, 0)

float

enter_cost

0.0

int

navigation_layers

1

Vector2

start_position

Vector2(0, 0)

float

travel_cost

1.0

方法

Vector2

get_global_end_position() const

Vector2

get_global_start_position() const

bool

get_navigation_layer_value(layer_number: int) const

RID

get_rid() const

void

set_global_end_position(position: Vector2)

void

set_global_start_position(position: Vector2)

void

set_navigation_layer_value(layer_number: int, value: bool)


属性说明

bool bidirectional = true 🔗

  • void set_bidirectional(value: bool)

  • bool is_bidirectional()

返回这个连接是可以双向通行,还是只能从 start_position 通向 end_position


bool enabled = true 🔗

  • void set_enabled(value: bool)

  • bool is_enabled()

该链接当前是否处于活动状态。如果为 false ,则 NavigationServer2D.map_get_path 会忽略这个链接。


Vector2 end_position = Vector2(0, 0) 🔗

链接的结束位置。

链接会搜索导航网格中最接近这个位置的多边形,并将自身与该多边形相关联。

链接搜索的距离由 NavigationServer2D.map_set_link_connection_radius 控制。


float enter_cost = 0.0 🔗

  • void set_enter_cost(value: float)

  • float get_enter_cost()

当寻路从其他地区的导航网格进入该链接时,enter_cost 会加到路径距离中,用于确定最短路径。


int navigation_layers = 1 🔗

  • void set_navigation_layers(value: int)

  • int get_navigation_layers()

决定链接所属导航层的位域。使用 NavigationServer2D.map_get_path 请求路径时会检查这些导航层。


Vector2 start_position = Vector2(0, 0) 🔗

  • void set_start_position(value: Vector2)

  • Vector2 get_start_position()

链接的起始位置。

链接会搜索导航网格中最接近这个位置的多边形,并将自身与该多边形相关联。

链接搜索的距离由 NavigationServer2D.map_set_link_connection_radius 控制。


float travel_cost = 1.0 🔗

  • void set_travel_cost(value: float)

  • float get_travel_cost()

当寻路沿着该链接移动时,移动距离会和 travel_cost 相乘,用于确定最短路径。


方法说明

Vector2 get_global_end_position() const 🔗

返回该链接的 end_position 的全局位置。


Vector2 get_global_start_position() const 🔗

返回该链接的 start_position 的全局位置。


bool get_navigation_layer_value(layer_number: int) const 🔗

返回 navigation_layers 位掩码中指定的层是否启用,给定的 layer_number 应在 1 和 32 之间。


RID get_rid() const 🔗

返回 NavigationServer2D 上该链接的 RID


void set_global_end_position(position: Vector2) 🔗

使用全局位置 position 设置相对于链接的结束位置 end_position


void set_global_start_position(position: Vector2) 🔗

使用全局位置 position 设置相对于链接的起始位置 start_position


void set_navigation_layer_value(layer_number: int, value: bool) 🔗

根据 value,启用或禁用 navigation_layers 位掩码中指定的层,给定的 layer_number 应在 1 和 32 之间。