欢迎来到淼淼之森的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

unity之圣殿-关卡模块

  |   0 评论   |   0 浏览

最近在做关卡模块,看到一个要求:根据当前关卡位置,点击任意已开放的关卡,主角自动寻路至该处。
关卡配置表如下:
map = {
[1] = { coordinate = { 1, 1, }, link = { 2, 3, }, },
[2] = { coordinate = { 2, 1, }, link = { 1, 3, }, },
[3] = { coordinate = { 3, 2, }, link = { 4, 3, }, },
[4] = { coordinate = { 8, 2, }, link = { 2, 3, }, },
[5] = { coordinate = { 3, 3, }, link = { 2, 3, }, },
[6] = { coordinate = { 5, 3, }, link = { 2, 3, }, },
[7] = { coordinate = { 9, 3, }, link = { 2, 3, }, },
[8] = { coordinate = { 2, 4, }, link = { 2, 3, }, },
}
map的key值代表第几关,coordinate代表对应关卡的坐标位置,{2,1}代表坐标位置为x=2,y=1,link表代表相连的关卡,{2,3}代表与关卡2和关卡3相连。
第一反应就是AStar算法。毕竟自动寻路嘛,那肯定得是A了。上次使用A还是在上次...enen,
还是上学时候,当时也只是学习了该算法的思路伪代码。要说那用到实践里,那就是一个鸡蛋了。
加上这么长时间过去了,只问其名,却已忘记其身,不得不借助www:度娘,我来了~。
首先找一篇通俗易懂的文章,看看算法的思路吧,代码的事后面再说~
先说下我的理解:A算法主要用于求最短路径。算法的主要思想是
详情可见:推荐一篇大佬的A
算法文章:https://blog.csdn.net/xinzhilinger/article/details/119643810

搞懂了算法的思想后,我们其实是不需要自己写代码的,因为网上已经有很多成功的案例了,我们只需要站在

巨人的肩膀上操作,去使用它。找到一个A算法的脚本,如下:
怎么去使用它呢?
由于A
算法是在网格上寻路的,因此我们需要先创建地图网格,使用Star.New(),看Astar算法发现,需要的参数是String

该网格是由网格的长宽,以及每个位置的信息(是否能通过,1代表可通过0代表不可通过)构成的,类似于这样:
image.png

image.png

image.png
image.png
image.png

image.png

image.png


标题:unity之圣殿-关卡模块
作者:shirlnGame
地址:https://www.mmzsblog.cn/articles/2022/06/28/1656388480859.html

如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜爱上游戏开发