Navigation
继承
简要描述
基于网格的导航和寻路节点。
描述
在NavigationMesh es集合中提供导航和寻路。默认情况下,它们将自动从子NavigationMeshInstance节点中收集,但它们也可以通过[navmesh_add]方法动态添加。除了基本的寻路,这个类还帮助导航代理与它们所导航的网格对齐。
成员
类型 | 属性名 | 默认值 |
---|---|---|
Vector3 | up_vector | Vector3( 0, 1, 0 ) |
方法
返回值类型 | 方法名称 |
---|---|
Vector3 | get_closest_point(to_point: Vector3) |
Vector3 | get_closest_point_normal(to_point: Vector3) |
Object | get_closest_point_owner(to_point: Vector3) |
Vector3 | get_closest_point_to_segment(start: Vector3, end: Vector3, use_collision: bool = false) |
PoolVector3Array | get_simple_path(start: Vector3, end: Vector3, optimize: bool = true) |
int | navmesh_add(mesh: NavigationMesh, xform: Transform, owner: Object = null) |
void | navmesh_remove(id: int) |
void | navmesh_set_transform(id: int, xform: Transform) |
常量
成员说明
- Vector3 up_vector
Default | Vector3( 0, 1, 0 ) |
---|---|
setter | set_up_vector(value) |
getter | get_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)
返回两个给定点之间的路径。点在局部坐标空间中。如果optimization
是true
(默认值),那么与每个NavigationMesh相关联的代理属性(半径、高度等)在路径计算中会被考虑,否则会被忽略。
- navmesh_add (mesh: NavigationMesh, xform: Transform, owner: Object = null)
添加一个NavigationMesh。返回与navmesh_remove或navmesh_set_transform一起使用的ID。如果给定,一个Transform2D应用到多边形。可选的owner
被用作get_closest_point_owner的返回值。
- navmesh_remove (id: int)
删除具有给定ID的NavigationMesh。
- navmesh_set_transform (id: int, xform: Transform)
用给定的ID设置应用于NavigationMesh的变换。