跳到主要内容

Navigation

继承

Spatial

简要描述

基于网格的导航和寻路节点。

描述

NavigationMesh es集合中提供导航和寻路。默认情况下,它们将自动从子NavigationMeshInstance节点中收集,但它们也可以通过[navmesh_add]方法动态添加。除了基本的寻路,这个类还帮助导航代理与它们所导航的网格对齐。

成员

类型属性名默认值
Vector3up_vectorVector3( 0, 1, 0 )

方法

返回值类型方法名称
Vector3get_closest_point(to_point: Vector3)
Vector3get_closest_point_normal(to_point: Vector3)
Objectget_closest_point_owner(to_point: Vector3)
Vector3get_closest_point_to_segment(start: Vector3, end: Vector3, use_collision: bool = false)
PoolVector3Arrayget_simple_path(start: Vector3, end: Vector3, optimize: bool = true)
intnavmesh_add(mesh: NavigationMesh, xform: Transform, owner: Object = null)
voidnavmesh_remove(id: int)
voidnavmesh_set_transform(id: int, xform: Transform)

常量

成员说明

  • Vector3 up_vector
DefaultVector3( 0, 1, 0 )
setterset_up_vector(value)
getterget_up_vector

方法说明

  • get_closest_point get_closest_point(to_point: Vector3)

返回最接近给定点的导航点。


  • get_closest_point_normal get_closest_point_normal(to_point: Vector3)

返回最接近给定点的导航点处的表面法线。对于根据导航网格旋转导航代理非常有用。


  • get_closest_point_owner get_closest_point_owner(to_point: Vector3)

返回NavigationMesh的所有者,该所有者包含最接近给定点的导航点。这通常是一个NavigationMeshInstance。对于通过navmesh_add添加的网格,返回给定的所有者(如果owner参数被省略,则null)。


  • get_closest_point_to_segment get_closest_point_to_segment(start: Vector3, end: Vector3, use_collision: bool = false)

返回最接近给定线段的导航点。当启用use_collision时,只考虑段和导航网格之间的交点。如果找到多个交点,则返回离线段起始点最近的一个。


  • get_simple_path get_simple_path(start: Vector3, end: Vector3, optimize: bool = true)

返回两个给定点之间的路径。点在局部坐标空间中。如果optimizationtrue(默认值),那么与每个NavigationMesh相关联的代理属性(半径、高度等)在路径计算中会被考虑,否则会被忽略。


  • navmesh_add navmesh_add(mesh: NavigationMesh, xform: Transform, owner: Object = null)

添加一个NavigationMesh。返回与navmesh_removenavmesh_set_transform一起使用的ID。如果给定,一个Transform2D应用到多边形。可选的owner被用作get_closest_point_owner的返回值。


  • navmesh_remove navmesh_remove(id: int)

删除具有给定ID的NavigationMesh


  • navmesh_set_transform navmesh_set_transform(id: int, xform: Transform)

用给定的ID设置应用于NavigationMesh的变换。