Unity 中 Nav Mesh Agent 组件详解

目录

Unity 中 Nav Mesh Agent 组件详解

组件整体作用

参数详解

代理类型(Agent Type)

基准偏移 X(Base Offset X)

转向(Steering)相关参数

停止距离(Stopping Distance)

自动刹车(Auto Braking)

障碍躲避(Obstacle Avoidance)相关参数

寻路(Pathfinding)相关参数


在 Unity 游戏开发中,Nav Mesh Agent(导航网格代理)组件是实现角色自动寻路功能的关键。它允许游戏角色在预先烘焙好的导航网格上智能地移动,避开障碍物并找到通往目标点的路径。下面我们来详细了解一下该组件及其参数的含义。

组件整体作用

Nav Mesh Agent 组件能够让游戏对象(如角色、怪物等)在场景中进行自动导航。它会根据设定的目标位置,结合场景的导航网格信息,自动计算出一条可行路径,并控制游戏对象沿着这条路径移动,同时还能处理诸如躲避障碍物等情况。

参数详解

代理类型(Agent Type)

用于指定当前导航代理所使用的导航网格设置类型。不同的类型可以对应不同的移动特性,比如可以针对不同体型、移动速度的角色设置不同的类型,这里设置为 “Monster” ,可能是专门为怪物角色定制的导航类型。

基准偏移 X(Base Offset X)

表示代理在垂直方向上相对于导航网格的偏移量。通常用于调整角色的脚底与导航网格表面的距离,设置为 0 意味着角色刚好贴合导航网格表面。

转向(Steering)相关参数

  • 速度(Speed):定义了代理在移动时的最大速度,单位通常是米 / 秒。这里设置为 3.5,意味着该代理移动时每秒最多移动 3.5 米 。
  • 角速度(Angular Speed):表示代理在转向时的最大旋转速度,单位是度 / 秒。120 的数值表示代理每秒最多可以旋转 120 度。
  • 加速(Acceleration):控制代理从静止加速到最大速度的快慢程度。值为 8 意味着代理每秒速度的增加量最大为 8 米 / 秒 。

停止距离(Stopping Distance)

当代理接近目标点时,在距离目标点多远的位置停止移动。设置为 0 表示会尽可能靠近目标点。

自动刹车(Auto Braking)

勾选此选项后,代理在接近目标点时会自动减速并停止,而不是直接冲过目标点。

障碍躲避(Obstacle Avoidance)相关参数

  • 半径(Radius):代表代理的碰撞半径,用于判断与障碍物的距离,值为 0.01 表示代理的碰撞范围是以自身为中心,半径 0.01 米的区域 。
  • 高度(Height):定义代理的高度,用于在三维空间中检测碰撞,这里高度为 0.02 米 。
  • 质量(Quality):设置障碍躲避的质量等级,“高质量” 意味着在躲避障碍物时会进行更精确的计算,但可能会消耗更多性能。
  • 优先级(Priority):当多个代理在同一区域移动时,用于确定它们躲避障碍物的优先级,数值越大优先级越高,这里设置为 50 。

寻路(Pathfinding)相关参数

  • 自动通过分离网格链接(Auto Traverse Off-Mesh Links):勾选后,代理会自动处理导航网格中的分离链接,例如跨越沟壑、通过门等特殊连接。
  • 自动重新寻路(Auto Repath):若勾选,当代理的当前路径被阻塞时,会自动重新计算一条新的路径。
  • 区域遮罩(Area Mask):用于指定代理可以通过的导航区域类型,这里设置为 “Everything” 表示可以通过所有类型的导航区域。

通过深入理解 Nav Mesh Agent 组件及其各个参数,我们能够更加灵活地控制游戏角色在场景中的移动,实现更加智能和流畅的自动寻路效果,为游戏增添丰富的交互性和趣味性。在实际项目开发中,可以根据不同角色和场景需求,细致调整这些参数,以达到最佳的游戏表现。