跳转到内容

导航障碍物(NavMeshObstacles)

Version >= LayaAir 3.2

NavMeshObstacles(导航障碍物)是LayaAir 3D导航系统中用于表示寻路过程中障碍物的组件。通过在场景中放置障碍物对象,设置障碍物的类型与形状,可以影响导航网格的生成和寻路计算。

该组件继承自BaseNav3DModifle,是动态节点基类的子类。障碍物的导航数据可以动态添加到NavMeshSurface类的节点下面,形成场景路径的动态变化。在LayaAir-IDE的属性面板中,该组件显示为导航障碍物

关于3D寻路的整体介绍,请参考3D寻路

属性说明
代理类型 agentType指定该障碍物适用的代理类型,需与所属静态导航表面的代理类型匹配
区域标记 areaFlag标记该障碍物的区域类型,影响代理对该区域的寻路代价
类型 meshType障碍物的形状类型,支持BOX(盒子)、CYLINDER(圆柱体)和CUSTOMER(自定义)三种
中心点 center障碍物的中心位置偏移(Vector3)
数据 datas烘焙生成的导航网格数据(TextResource类型)。烘焙后自动填充

meshType设置为BOX时,可设置以下属性:

属性说明
大小 size盒子的宽度、高度、长度(Vector3)。通过这些值可以调整盒子的体积大小,来匹配障碍物的尺寸

meshType设置为CYLINDER时,可设置以下属性:

属性说明
高度 height圆柱体的高度
半径 radius圆柱体的底面半径

在需要作为障碍物的节点上添加导航障碍物组件,选择合适的形状类型(BOX或CYLINDER),并调整中心点和大小参数使其匹配实际模型的尺寸。

使用步骤:

  1. 在障碍物节点上添加导航障碍物组件。
  2. 选择meshTypeBOXCYLINDER
  3. 调整centersize/height/radius参数。
  4. 将障碍物节点放在拥有静态导航表面组件的节点的子节点下。
  5. 与静态导航表面一起进行烘焙。
  • 障碍物节点需要放在静态导航表面节点的子节点下。
  • 障碍物的边界范围(min/max)不需要手动配置,烘焙完成后会自动生成。
  • 障碍物是动态的,其位置变化会影响导航网格的实时更新。
  • 如需通过代码动态添加障碍物,需先提前烘焙好并存储在预制体中。