Skip to content

NavigationSystem 导航系统演示

这是一个展示 NavigationSystem 可插拔导航架构 的交互式演示,涵盖多种寻路算法和避让场景。

点击 Run 启动模拟,使用工具栏按钮切换不同配置:

场景说明:

场景寻路算法特点
NavMeshNavMesh多边形导航网格,适合复杂地形
A*A* 网格寻路经典网格寻路,搜索完整
JPS跳点搜索优化的网格寻路,减少节点扩展
Circle无路径规划纯 ORCA 避让,经典圆形交换测试
FunnelA*漏斗通道,测试窄道通行
Stress无路径规划大量代理压力测试

交互操作:

  • 左键点击 设置所有代理的目标位置
  • 右键点击 在点击位置添加新代理
NavigationSystem 可插拔导航TS
// 切换寻路算法
navSystem.setPathPlanner(createNavMeshPathPlanner(navMesh));
navSystem.setPathPlanner(createAStarPlanner(gridMap, undefined, { cellSize: 20 }));
navSystem.setPathPlanner(createJPSPlanner(gridMap, undefined, { cellSize: 20 }));
// 切换避让算法
navSystem.setLocalAvoidance(createORCAAvoidance());
navSystem.setLocalAvoidance(null); // 禁用
接口职责实现
IPathPlanner全局路径规划NavMesh, A*, JPS, HPA*
ILocalAvoidance局部避让ORCA
ICollisionResolver碰撞解决CollisionResolver
// 静态障碍物:路径规划绑开,CollisionResolver 防穿墙
navSystem.addStaticObstacle({ vertices: [...] });
// 动态障碍物:ORCA 实时避让
navSystem.addDynamicObstacle({ vertices: [...] });