虚拟现实技术与开发
实现AI自动寻路与智能导航
导航系统:游戏开发中实现AI自动寻路的关键技术,让NPC智能移动
| 组件 | 功能 |
|---|---|
| NavMesh | 导航网格,表示可行走区域 |
| NavMeshAgent | 导航代理,执行寻路 |
| Off-Mesh Link | 离网链接,实现跳跃、爬高 |
| NavMeshObstacle | 动态障碍物 |
NavMesh:Unity自动生成的导航网格,表示可行走区域
| 参数 | 说明 |
|---|---|
| Agent Radius | 代理半径(可行走区域宽度) |
| Agent Height | 代理高度(可行走区域高度) |
| Max Slope | 最大坡度 |
| Step Height | 台阶高度 |
NavMeshAgent:挂载在需要寻路的角色上,执行自动寻路
选中角色 → Component → Navigation → NavMeshAgent
| 属性 | 说明 |
|---|---|
| Speed | 移动速度 |
| Angular Speed | 转向速度 |
| Acceleration | 加速度 |
| Stopping Distance | 停止距离(到达目标前停止) |
| Auto Braking | 自动制动 |
| Radius | 代理半径 |
| Height | 代理高度 |
Off-Mesh Link:实现跳跃、爬高等非常规路径
NavMeshObstacle:动态障碍物,代理会自动绕行
选中物体 → Component → Navigation → NavMesh Obstacle
| 属性 | 说明 |
|---|---|
| Shape | 形状(Capsule/Box) |
| Center | 中心点 |
| Size | 大小 |
| Carve | 是否切割导航网格 |
| Move Threshold | 移动阈值 |
| Time To Stationary | 静止时间 |
| 模式 | 特点 |
|---|---|
| 普通模式 | 代理绕行,障碍物移动时重新计算路径 |
| Carve模式 | 实时切割导航网格,性能开销更大 |
性能建议:静态障碍物使用Navigation Static,动态障碍物使用NavMeshObstacle
思考题:简述Unity导航系统组成及各组件功能
答案:NavMesh(导航网格)、NavMeshAgent(导航代理)、Off-Mesh Link(离网链接)、NavMeshObstacle(动态障碍物)