导航障碍物(NavMeshObstacles)
Version >= LayaAir 3.2
一、概述
NavMeshObstacles(导航障碍物)是LayaAir 3D导航系统中用于表示寻路过程中障碍物的组件。通过在场景中放置障碍物对象,设置障碍物的类型与形状,可以影响导航网格的生成和寻路计算。
该组件继承自NavModifleBase,是动态节点基类的子类。障碍物的导航数据可以动态添加到NavMeshSurface类的节点下面,形成场景路径的动态变化。在LayaAir-IDE的属性面板中,该组件显示为导航障碍物。
关于3D寻路的整体介绍,请参考3D寻路。
二、属性说明
2.1 通用属性
| 属性 | 说明 |
|---|---|
代理类型 agentType |
指定该障碍物适用的代理类型,需与所属静态导航表面的代理类型匹配 |
区域标记 areaFlag |
标记该障碍物的区域类型,影响代理对该区域的寻路代价 |
类型 meshType |
障碍物的形状类型,支持BOX(盒子)和CAPSULE(胶囊体)两种 |
中心点 center |
障碍物的中心位置偏移(Vector3) |
数据 datas |
烘焙生成的导航网格数据(TextResource类型)。烘焙后自动填充 |
2.2 BOX类型属性
当meshType设置为BOX时,可设置以下属性:
| 属性 | 说明 |
|---|---|
大小 size |
盒子的宽度、高度、长度(Vector3)。通过这些值可以调整盒子的体积大小,来匹配障碍物的尺寸 |
2.3 CAPSULE类型属性
当meshType设置为CAPSULE时,可设置以下属性:
| 属性 | 说明 |
|---|---|
高度 height |
胶囊体的高度 |
半径 radius |
胶囊体的底面半径 |
三、使用说明
3.1 基本用法
在需要作为障碍物的节点上添加导航障碍物组件,选择合适的形状类型(BOX或CAPSULE),并调整中心点和大小参数使其匹配实际模型的尺寸。
使用步骤:
- 在障碍物节点上添加
导航障碍物组件。 - 选择
meshType为BOX或CAPSULE。 - 调整
center和size/height/radius参数。 - 将障碍物节点放在拥有
静态导航表面组件的节点的子节点下。 - 与静态导航表面一起进行烘焙。
3.2 注意事项
- 障碍物节点需要放在静态导航表面节点的子节点下。
- 障碍物的边界范围(
boundMin/boundMax)不需要手动配置,烘焙完成后会自动生成。 - 障碍物是动态的,其位置变化会影响导航网格的实时更新。
- 如需通过代码动态添加障碍物,需先提前烘焙好并存储在预制体中。