Version: 2019.3
导航网格代理与其他组件结合使用
导航网格障碍物 (Nav Mesh Obstacle)

导航网格代理 (NavMesh Agent)

NavMeshAgent 组件可帮助您创建在朝目标移动时能够彼此避开的角色。代理 (Agent) 使用导航网格来推断游戏世界,并知道如何避开彼此以及其他移动障碍物。寻路和空间推断是使用导航网格代理的脚本 API 进行处理的。

属性

属性 功能
Agent Size
Radius 代理的半径,用于计算障碍物与其他代理之间的碰撞。
Height 代理通过头顶障碍物时所需的高度间隙。
Base offset 碰撞圆柱体相对于变换轴心点的偏移。
Steering
Speed 最大移动速度(以世界单位/秒表示)。
Angular Speed 最大旋转速度(度/秒)。
Acceleration 最大加速度(以世界单位/平方秒表示)。
Stopping distance 当靠近目标位置的距离达到此值时,代理将停止。
Auto Braking 启用此属性后,代理在到达目标时将减速。对于巡逻等行为(这种情况下,代理应在多个点之间平滑移动)应禁用此属性
Obstacle Avoidance
Quality 障碍躲避质量。如果拥有大量代理,则可以通过降低障碍躲避质量来节省 CPU 时间。如果将躲避设置为无,则只会解析碰撞,而不会尝试主动躲避其他代理和障碍物。
Priority 执行避障时,此代理将忽略优先级较低的代理。该值应在 0–99 范围内,其中较低的数字表示较高的优先级。
Path Finding
Auto Traverse OffMesh Link 设置为 true 可自动遍历网格外链接 (Off-Mesh Link)。如果要使用动画或某种特定方式遍历网格外链接,则应关闭此功能。
Auto Repath 启用此属性后,代理将在到达部分路径末尾时尝试再次寻路。当没有到达目标的路径时,将生成一条部分路径通向与目标最近的可达位置。
Area Mask Area Mask 描述了代理在寻路时将考虑的区域类型。在准备网格进行导航网格烘焙时,可设置每个网格区域类型。例如,可将楼梯标记为特殊区域类型,并禁止某些角色类型使用楼梯。

详细信息

代理由直立圆柱体定义,而该圆柱体的大小由 RadiusHeight 属性指定。圆柱体随对象移动,但即使对象本身旋转也始终保持直立。圆柱体的形状用于检测并响应其他代理和障碍物之间的碰撞。当游戏对象的锚点不在圆柱体的底部时,可使用 Base Offset 属性来获取高度差。

圆柱体的高度和半径实际上在_两个_不同的位置指定:导航网格烘焙设置和各代理的属性。

  • _导航网格烘焙设置_描述了所有导航网格代理如何碰撞或避开静态世界几何体。为了保持内存在预算范围内和 CPU 负载在控制范围内,只能在烘焙设置中指定一种大小。
  • _导航网格代理属性_值描述代理如何与移动障碍物及其他代理碰撞。

通常在这两个位置设置相同的代理大小。但在某些情况下,例如,一个沉重的士兵可能有更大的半径,所以其他代理会在他周围保持更大间隔空间,但在其他情况下他避开环境的方式是相同的。

阅读更多信息

导航网格代理与其他组件结合使用
导航网格障碍物 (Nav Mesh Obstacle)