游戏的navmesh 与rvo动态避障算法(1)
目前很多手游中如果需要寻路,很多时候复杂地形都是需要用到navmesh,而比较常用的navmesh 系统 :1.astarpathfinding :一个老外开发的寻路插件,内置有很多寻路模块,recast动态namvesh,navmesh(使用插件自己导出的静态navmesh网格),rvo模块,并且拥有自己的一套定点数系统,稍微修正下,便能用于在帧同步游戏上,并且拥有源码,非常方便。2,unity官方的navmesh 系统,在github上推送了自己的navmeshcomponent之后,运行时动态生成navmesh也变成可能,相比astarpathfinding更简单的界面和使用,一个NavMeshAgent基本就能达到需求,但是因为其封闭性,各方面api的使用和某些隐形规则,会成为精通其的障碍之一。虽然其bake的navmesh可动态保存在prefab和场景中,但是如果要手动调整navmesh,则变成不可能,不能满足某些特定的需求。如果单从这些方面来说,或许astarpathfing可能是一个更好的选择。
但是本人在使用中发现astarpathfinding的rvo系统在某些情况下的预期并不符合我的需求(unity的符合需求,但是封闭,所以不做考虑),遂用rvo2系统和astarpathfing的rvo系统进行了demo测试,在性能上rvo2的性能略优于其的rvo,行为表现上也更符合我的预期。因此,选择基于rvo2,做一套自己的定点数navmesh系统,并且可以使用外部美术调整过的namvesh网格。
具体实现细节和想法还有问题如果后续有时间会进行补充。在此先放上图片。(因为上传限制,另外一个gif无法上传。将就先看着吧。)
资源暂放地址:https://download.csdn.net/download/kubilitydef/10275440