NavMesh寻路网格自动生成和动态障碍技术

demo视频
在之前的自己写的NavMesh网格寻路功能的基础上,做了个寻路网格动态自动生成的功能,突破了Unity的自带寻路不能动态生成寻路网格,一定要先break再用的缺点。
用法很简单,把可以走的地形设置成一个叫做“Walk”的标签,然后不能走的地方设置成叫“cantWalk”的标签,然后就什么都不用管了,直接运行即可。
NavMesh寻路网格自动生成和动态障碍技术

在没有任何障碍物的情况下,就和之前的寻路一样:
NavMesh寻路网格自动生成和动态障碍技术

然后直接添加一个cube,寻路就会绕过这个新增加的cube
NavMesh寻路网格自动生成和动态障碍技术
再增加一个,人物就会再绕过新的cube
NavMesh寻路网格自动生成和动态障碍技术
把路塞住,人物就绕开了路
NavMesh寻路网格自动生成和动态障碍技术

删除中间的一个cube:
NavMesh寻路网格自动生成和动态障碍技术

然后人物就可以在中间通过了,就像魔兽里面的把树灭掉之后,路就能通了
NavMesh寻路网格自动生成和动态障碍技术

去scene视窗看看,会发现现在的网格是这样的:
NavMesh寻路网格自动生成和动态障碍技术
移动出来看看,这个就是我新生成的NavMesh了,其实这个东西纯粹是为了让大家看清楚才显示出来的,没什么实际意义的。
NavMesh寻路网格自动生成和动态障碍技术

继续添加cube,网格就会动态变化,变成了这样:
NavMesh寻路网格自动生成和动态障碍技术

到现在为止,这套属于我自己的寻路系统就越来越有实用性了。可以动态生成mesh、可以用于各种平台、随便怎样保存加载都可以。不过暂时还有些bug,还有些功能不太完善,以后有机会慢慢的改善吧。
再次说明,这个不是教程,只是分享一下自己的技术成果而已。