Skip to content

NavMeshAgent

继承自 Component

NavMeshAgent组件通常用在角色对象上,并且能够设置这些角色在朝着目标前进时会互相避开。

typescript
let obj = new GameObject();
let com = obj.AddComponent<NavMeshAgent>(NavMeshAgent);

成员变量

NavMeshAgent.speed : number
遵循路径时的最大移动速度。
NavMeshAgent.angularSpeed : number
代理旋转时的角速度,单位为度/秒。
NavMeshAgent.acceleration : number
移动过程中的加速度。
NavMeshAgent.stoppingDistance : number
设置代理的停止距离。
NavMeshAgent.autoBraking : boolean
代理在移动到终点时是否自动停下。
NavMeshAgent.baseOffset : number
代理相对于所绑定的GameObject在y轴方向上的偏移。
NavMeshAgent.radius : number
代理的躲避障碍的半径。
NavMeshAgent.height : number
垂直方向上代理躲避障碍物的距离。
NavMeshAgent.avoidancePriority : number
代理的躲避障碍的优先级。
NavMeshAgent.autoTraverseOffMeshLink : boolean
是否激活代理。
NavMeshAgent.velocity : Vector3
代理的当前速度。
NavMeshAgent.destination : Transform
指定的目的地位置。
NavMeshAgent.desiredVelocity : Vector3
(只读)代理的期望速度。
NavMeshAgent.areaMask : number
指定代理可以在哪些导航网格上移动。
NavMeshAgent.updatePosition : boolean
是否使用使用寻路结果强行同步代理的transform
NavMeshAgent.path : NavMeshPath
获取代理所在位置到代理目的地的一条路径。
NavMeshAgent.currentOffMeshLinkData : OffMeshLinkData
(只读)代理当前所处的链接,如果代理当前不是位于链接上,则返回null
NavMeshAgent.hasPath : bool
(只读)代理当前是否有路径
NavMeshAgent.isOnNavMesh : bool
(只读)代理是否属于某一导航网格
NavMeshAgent.isOnOffMeshLink : bool
(只读)代理是否处于某一链接上
NavMeshAgent.isPathStale : bool
(只读)代理当前路径是否已失效,当目标点发生改变,设置了区域成本,设置了nextPosition,改变了后续路径中的链接的状态时都会导致路径失效,重新计算后会清除失效状态。
NavMeshAgent.isStopped : bool
是否强制停止代理的移动
NavMeshAgent.nextOffMeshLinkData : OffMeshLinkData
(只读)代理当前路径中下一个链接的状态数据,若为空则返回null
NavMeshAgent.nextPosition : Vector3
代理下一帧的位置。该位置为网格上的位置。如果将一个不在网格上的位置设置给该属性,则会被限制到相邻的网格上。如果代理正处于链接上,则对nextPosition的赋值将不起作用。
NavMeshAgent.remainingDistance : float
(只读)代理当前的位置到目标的距离,若代理当前的路径并不是完整的从当前位置到目标的路径,或者没有路径,则返回值为一个非常大的数。如果代理的位置不与寻路的位置同步,返回的值是寻路位置与目标点之间的距离,而非代理所属的游戏对象的实时位置。
NavMeshAgent.steeringTarget : Vector3
(只读)下一个转向点,若当前无路径则返回Vector3(0,0,0)。
NavMeshAgent.updateRotation : bool
是否更新转向
NavMeshAgent.updateUpAxis : bool
是否强制代理保持直立向上

成员方法

NavMeshAgent.ActivateCurrentOffMeshLink ( activated : bool ) : void
设置当前的链接是否激活,若代理当前不在链接上,则无操作。
NavMeshAgent.CalculatePath ( targetPosition : Vector3 , path : NavMeshPath ) : bool
查找一条从agent当前位置到目标点的一条路径。目标点与代理要在统一导航网格上
NavMeshAgent.CompleteOffMeshLink ( ) : void
使代理移动到链接的结束位置,若代理当前不在链接上,则无任何操作。
NavMeshAgent.FindClosestEdge ( hit : NavMeshHit ) : bool
查找离代理最近的边界
NavMeshAgent.GetAreaCost ( areaIndex : int ) : float
返回指定区域的成本
NavMeshAgent.Move ( offset : Vector3 ) : void
将代理移动一定偏移,受网格限制。
NavMeshAgent.Raycast ( targetPosition : Vector3 , hit : NavMeshHit ) : bool
从代理所处的位置往指定位置发射一条射线,查找代理位置和指定位置之间是否有障碍物。
NavMeshAgent.ResetPath ( ) : void
重置代理的路径,并清除目标点,代理会直接停下
NavMeshAgent.SamplePathPosition ( areaMask : int , maxDistance : float , hit : NavMeshHit ) : bool
获取一个离指定点最近的可行走位置。用于在导航网格上采样指定位置的有效位置。
NavMeshAgent.SetAreaCost ( areaIndex : int , areaCost : float ) : void
设置区域的成本