U3L20-4——导航网格动态障碍物组件(NavMesh Obstacle)

导航网格动态障碍组件

在游戏中常常会有这样的一个功能,场景中有一道门,如果这道门没有被破坏是不能自动导航到门后场景的
只有当这道门被破坏了,才可以通过此处前往下一场景,
而类似这样的物体本身是不需要进行寻路的,所以没有必要为它添加 NavMeshAgent​ 脚本
这时就会使用动态障碍组件实现该功能

导航动态障碍物组件的使用

  1. 为需要进行动态阻挡的对象添加 NavMeshObstacle​ 组件
  2. 设置相关参数
  3. 代码逻辑控制其的移动或者显隐

参数相关

image

  • Shape 动态障碍的形状

    • Capsule:胶囊
    • Box:盒装
  • Carve: 是否开启雕刻功能
    开启后,障碍物会在导航网格中挖一个孔,
    所谓挖孔就是会生成对应的网格信息,认为这篇区域无法前往
    如果动态障碍物是固定不动的,建议开启,比如阻碍物门木桶栅栏等等
    如果动态障碍物是频繁移动的,建议不开启该功能,比如汽车和玩家

    • Move Threshold: 移动阈值 当障碍物移动超过该距离时,会认为其为移动状态,会更新移动的孔
    • Time To Stationary: 障碍物作为静止状态需要等待的时间,单位为秒 当静止时间超过该值会认为真正静止了
    • Carve Only Stationary: 只有在静止状态时才会计算孔