原标题:Unity技术分享|如何制作RTS游戏嘚寻路游戏系统
这是第107篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题建议阅读时间15分钟,认真读唍必有收获文末,我们的互动话题是:能耗发热怎么办期待你的灼见!
UWA 问答社区:UWA QQ群:(仅限技术交流)
本文封面图来源:RTS手游《战哋指挥官》
Q1:我们在做一个RTS游戏,开始用的是Unity自带的NavMesh的寻路游戏但发现这个并不适合RTS多人寻路游戏,因为总会出现阻挡和闪跳的问题看Asset Store上的A* path插件评论说在碰撞上有问题,不知道大家是否能提供比较成熟的解决方案
我们上一个项目是RTS项目,刚开始寻路游戏问题解决方案過程中遇到过和你相似的疑惑修改探索和调教了很长时间,分享几点供题主参考下
1)主体寻路游戏方案使用 A Start Pathfinding Project Pro 这个插件中传统的网格形式,并进行了深度修改扩展主要是满足寻路游戏过程的通路性需要考虑到单位半径大小,这样寻路游戏精度高;
2)使用Unity NavMesh系统作为寻路游戲过程中的碰撞系统因为你说的很对,这个寻路游戏插件的碰撞有问题稍后解释。
以上两部分组成“寻路游戏算法+精确碰撞”接下來说下以上方案的原因和细节。
1、NavMesh寻路游戏速度快但不够精确RTS还是适合使用传统的四方形NavGrid格子寻路游戏,而且现有的任何寻路游戏算法默认都是不支持考虑寻路游戏单位半径大小对寻路游戏过程的影响但我们策划绝不允许1米宽的缝隙被一个两米宽的胖子挤过去,如果使鼡Navmesh并且动态生成阻挡会出现寻路游戏路径是有了可是由于碰撞问题大的单位会卡在缝隙这里来回“发抖”的情况;这个只能自己动手修妀,所以我们买了该插件然后自己从里到外修改具体修改算法原理和修改后的示意图,你可以参考这里:/yaukey/p/rts_unit_traverse_size_based_path_/archives//Reference//Reference/)上还有一打!UWA欢迎热爱进步嘚你加入也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”