找回密码
 立即注册
查看: 476|回复: 0

[简易教程] Unity寻路插件(A* Pathfinding)进阶教程十八:历程(完结)

[复制链接]
发表于 2020-11-25 09:40 | 显示全部楼层 |阅读模式
历时一个多月,截止上一篇为止,A* Pathfinding插件教程涵盖了入门和进阶共31篇教程(其中合并了一些较短的),算是完结了。
从业十余载,一直对这个行业进行索取,是时候反哺行业了。虽然和各种大佬相比,经验和思维都差很多,但也尽我所能对行业的推动贡献一点自己的力量。
游戏开发是一件非常非常幸苦的事情,并且很多时候付出并不能得到等价回报。从端游到页游再到手游一路走来,见证了行业的变迁,也经历了两次行业的洗牌。所幸的是我坚持下来了,仍然是在从事自己喜欢的行业,做自己喜欢的工作,这比很多人都要幸福。
十年的从业,有经历过小作坊全能定位和手忙脚乱,也经历过大厂的螺丝钉和井然有序。有胎死腹中的项目,也有DAU过千万的产品,做过的类型也有舞蹈休闲,模拟养成、动作、MMO、SLG和MOBA。技术涉猎五花八门,项目经验乱七八糟,也没有时间静下来梳理一下我到底会什么,需要提升什么。
年初的时候,跟老大聊天才意识到,确实需要沉淀一波了,自己几斤几两需要拿出来掂量掂量,虽然念头起了,但是一直还是没有想到该如何去实行,一方面项目比较紧迫,一方面还找不到头绪,从何而起。
新项目是一个SLG的游戏,一个比较重要的模块是主城内的NPC行为,另外世界地图是一个几十万网格的地形,行军也是需要进行寻路,加上战斗部分使用到了RVO,综合比较选取了A* Pathfinding作为寻路支持。
A* Pathfinding是一个非常非常优秀的插件,不仅仅体现在极其强大的寻路功能支持,还体现在整个插件的框架设计上。文档也是极其详细,哪怕是在插件本身的源代码里每一个接口都注释的非常非常详细,包括它的示例。
虽然取名叫A* ,但它的功能远远超越了A* 。实际上它包含了几乎所有使用到的寻路类型,grid(栅格) 、layered grid(分层)、 navigation(导航网格)、recast(重铸)、points(路点)。
设计上也是考虑到自定义和扩展,几乎每种用到的功能都能进行自定义扩展。寻路类型也可以自定义添加,比如教程中有一篇是讲解怎么新建一个蜘蛛网类型的网格。
几乎所有的数据都是支持多种操作方式,可以静态读取和保存,可以局部更新,可以动态创建,甚至可以在非运行时进行寻路功能。
除了这些之外,它还做到了Unity的导航网格所不能做到的事情,比如在navigation上动态切割,或者使用RVO进行动态规避,甚至连RVO的方式也可以自定义扩展。
可以针对3D或者2D游戏,支持固定角度和自由角度,甚至能够在处理完的路径进行后处理,进行各种效果处理,比如简化,平滑等。
可以编辑tag和plenty来决定路点的权值,也可以使用内部多线程来加快路径搜索。除了插件本身的各种功能之外,还衍生介绍了很多Unity本身的实现,加强用户对技术实现上的背景理解。
嗯,总得来说其实就是夸爆这个插件,回想下自己经历过的项目,似乎没有哪个类型的寻路是不能被它处理的。所以,嗯夸爆!
这篇作为A*插件教程系列的完结,也作为本人反哺行业的一个开始,后续会继续讲解在现在SLG项目中的各种实战设计。希望看到的大佬能给与建议和指导,当然也可以一起探讨。
可以加V:263585495 备注 知乎 Unity, 共同探讨Unity开发技术,游戏开发,痛并快乐着。
个人公众号:壹种念头 。更多的精彩内容公众号首发,相关源码也会在公众号给出,欢迎关注。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 10:47 , Processed in 0.098366 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表