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 |
| 设置区域的成本 |
