目录
1 动态障碍物与导航
1.1 静态的导航
1.2 问题 如果像实现那种动态的开关的门或者机关呢?
2 测试地图准备
2.1 增加一个动态的障碍物
2.2 实测 :这个障碍物不能阻挡导航寻路
3.3 实测
4.2 实测
1 动态障碍物与导航
1.1 静态的导航
- 之前的地图导航,navigation 都是静态的 static
- 也就是事先进行bake好的
- 在玩家的游戏过程中并不会发生改变
1.2 问题 如果像实现那种动态的开关的门或者机关呢?
- 也就是有的门,是那种开的时候不阻挡,关着的时候阻挡
- 没法用之前那种方法bake了
2 测试地图准备
2.1 增加一个动态的障碍物
- 先在已经bake好的地图里增加一个动态的障碍物
- 很显然,这个障碍物,没有经过bake
- 也并不会影响之前的导航
2.2 实测 :这个障碍物不能阻挡导航寻路
- 实测 :这个障碍物不能阻挡导航寻路
- 可以点击角色随意穿过
3 如何实现动态障碍物, 需增加Nav Mesh Obstacle
3.1 在动态障碍物上新增一个component: Nav Mesh Obstacle
3.2 Nav Mesh Obstacle 的属性
- shape: box capsule
- cneter
- size
3.3 实测
- 虽然,仍然不影响之前bake的 navigation mesh
- 但是角色导航寻路过不去了,不能闯过了
4 让 obstacle动态的切割 Nav Mesh
4.1 Nav Mesh Obstacle的 carve 切割相关属性
- Nav Mesh Obstacle如果勾选carve 切割
- 下面有几个属性
- 移动阈值:移动多远的距离开始影响navigation,生成新的可通过的navigation mesh,。这个填的越小,改变的越快越灵敏
下面2个配合使用
- 仅在静止时切割: 也就是动态的Obstacle 只有停住了才改变 navigation 动起来的时候不改变navigation
- 静止时间: 静止多久后开始影响navigation
4.2 实测
- 测试时,在Scene界面移动这个 wall ,同时在游戏窗口点击地面,移动角色可以测试
- 实测,好像是觉得开始寻路了,地面的 navigation mesh 才开始切割