Navigation

Inherits: Spatial < Node < Object

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

描述

NavigationMesh的集合中提供导航和寻路功能。默认情况下,这些将自动从子NavigationMeshInstance节点中收集,也可以通过navmesh_add即时添加。除了基本的寻路之外,这个类还能帮助导航代理与其所导航的网格对齐。

注意: 目前的导航系统有许多已知的问题,并不总是能像预期的那样返回最佳路径。这些问题将在Godot 4.0中得到解决。

教程

属性

Vector3

up_vector

Vector3( 0, 1, 0 )

方法

Vector3

get_closest_point ( Vector3 to_point )

Vector3

get_closest_point_normal ( Vector3 to_point )

Object

get_closest_point_owner ( Vector3 to_point )

Vector3

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

PoolVector3Array

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

int

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

void

navmesh_remove ( int id )

void

navmesh_set_transform ( int id, Transform xform )

属性说明

Default

Vector3( 0, 1, 0 )

Setter

set_up_vector(value)

Getter

get_up_vector()

定义了向上的方向。默认情况下,这是(0,1,0),这是世界的“向上”方向。

方法说明

返回最接近给定点的导航点。点位于局部坐标空间。


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


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


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


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

注意: 这个方法有已知的问题,经常会返回非最佳的路径。这些问题将在Godot 4.0中得到修正。


添加一个 NavigationMesh。返回用于 navmesh_removenavmesh_set_transform 的 ID。如果给定,则将 Transform2D 应用于多边形。可选的 owner 用作 get_closest_point_owner 的返回值。


  • void navmesh_remove ( int id )

移除具有指定ID的NavigationMesh


设置应用于具有指定ID的NavigationMesh的变换。