Navigation
Inherits: Spatial < Node < Object
基于网格的导航和寻路节点。
描述
在NavigationMesh的集合中提供导航和寻路功能。默认情况下,这些将自动从子NavigationMeshInstance节点中收集,也可以通过navmesh_add即时添加。除了基本的寻路之外,这个类还能帮助导航代理与其所导航的网格对齐。
注意: 目前的导航系统有许多已知的问题,并不总是能像预期的那样返回最佳路径。这些问题将在Godot 4.0中得到解决。
教程
属性
|
方法
get_closest_point ( Vector3 to_point ) | |
get_closest_point_normal ( Vector3 to_point ) | |
get_closest_point_owner ( Vector3 to_point ) | |
get_closest_point_to_segment ( Vector3 start, Vector3 end, bool use_collision=false ) | |
get_simple_path ( Vector3 start, Vector3 end, bool optimize=true ) | |
navmesh_add ( NavigationMesh mesh, Transform xform, Object owner=null ) | |
void | navmesh_remove ( int id ) |
void | navmesh_set_transform ( int id, Transform xform ) |
属性说明
- Vector3 up_vector
Default |
|
Setter | set_up_vector(value) |
Getter | get_up_vector() |
定义了向上的方向。默认情况下,这是(0,1,0)
,这是世界的“向上”方向。
方法说明
返回最接近给定点的导航点。点位于局部坐标空间。
返回最接近给定点的导航点处的表面法线。用于根据导航代理移动的导航网格旋转导航代理。
返回包含最接近给定点的导航点的 NavigationMesh 的所有者。这通常是一个 NavigationMeshInstance。对于通过 navmesh_add 添加的网格,返回给定的所有者(如果省略 owner
参数,则返回 null
)。
返回最接近给定线段的导航点。启用 use_collision
时,仅考虑线段和导航网格之间的交点。如果找到多个交点,则返回最接近线段起点的交点。
- PoolVector3Array get_simple_path ( Vector3 start, Vector3 end, bool optimize=true )
返回两个给定点之间的路径。点是在局部坐标空间中。如果optimize
是true
(默认),与每个NavigationMesh相关的代理属性(半径、高度等)在路径计算中被考虑,否则其被忽略。
注意: 这个方法有已知的问题,经常会返回非最佳的路径。这些问题将在Godot 4.0中得到修正。
- int navmesh_add ( NavigationMesh mesh, Transform xform, Object owner=null )
添加一个 NavigationMesh。返回用于 navmesh_remove 或 navmesh_set_transform 的 ID。如果给定,则将 Transform2D 应用于多边形。可选的 owner
用作 get_closest_point_owner 的返回值。
- void navmesh_remove ( int id )
移除具有指定ID的NavigationMesh。
设置应用于具有指定ID的NavigationMesh的变换。