游戏的navmesh 与rvo动态避障算法(1)

本文探讨了手游中navmesh在复杂地形寻路的应用,对比了AstarPathfinding和Unity官方navmesh系统的优缺点。作者在实际使用中发现AstarPathfinding的RVO系统在某些情况下不符合需求,转而采用RVO2进行测试,发现其性能和行为表现更优。因此,作者计划基于RVO2构建自己的定点数navmesh系统,允许使用外部美术调整的navmesh网格。后续可能分享更多实现细节和遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    目前很多手游中如果需要寻路,很多时候复杂地形都是需要用到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无法上传。将就先看着吧。

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值