Version: 2023.2
导航网格代理与其他组件结合使用
NavMesh 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 Set to true to automatically traverse OffMesh links. You should turn this off when you want to use animation or some specific way to traverse OffMesh links.
Auto Repath 启用此属性后,代理将在到达部分路径末尾时尝试再次寻路。当没有到达目标的路径时,将生成一条部分路径通向与目标最近的可达位置。
Area Mask Area Mask 描述了代理在寻路时将考虑的区域类型。在准备网格进行导航网格烘焙时,可设置每个网格区域类型。例如,可将楼梯标记为特殊区域类型,并禁止某些角色类型使用楼梯。

详细信息

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

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

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

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

Additional resources

NavMeshAgent

导航网格代理与其他组件结合使用
NavMesh Obstacle
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961