【unity2D】寻路插件A* Pathfinding-学习记录1
前言
找到了A* Pathfinding这款寻路插件,无需写代码就能实现简单的寻路。
A* Pathfinding下载传送门
对于2D俯视角寻路、2D横版中的飞行敌人寻路,参看这一篇文章,用的是grid graph。然而现在的需求是“敌人在地面和多个浮空平台之间寻路”。
查阅Pathfinding in 2D,发现里面有这样一段话:
对于平台式寻路(Platformer),这款插件只有一种实现办法,即使用很多的路点,创建一个自定义的连接。
接下来本来是要写“基于A* Pathfinding中的PointGraph实现平台式寻路”的,但是用它自带的脚本“AI Path”做出来的效果完全达不到预期,需要自己编写“AI Path”。虽然敌人挂载相关脚本后,会自动移动,但是debug出来发现它的2d刚体速度始终是0,这不利于切换动画。更多问题参看使用A* Pathfinding Project的一些心得。
下面总结如何利用它实现飞行敌人寻路。
利用A*Pathfinding实现2D横版游戏的飞行敌人寻路
-
搭建2D关卡,记得把所有地形障碍放进同一个layer里。
-
导入好A* Pathfinding插件后,创建一个空物体,挂载Pathfinder脚本。
-
如图调整一些重要设置:
最后一个红框设置为障碍所在的layer,如果要飞行敌人哪儿都能去,就不用设置了。
别忘了点击最底下的scan按钮扫描区域内障碍,自动生成相关网格。
如果要做动态地形,则要在代码中调用下列方法来扫描区域以更新网格:
- 在飞行敌人身上添加脚本“AI Path”、“Seeker”、“AI Destination Setter”,并如下图设置:
注意飞行敌人只能在Width和Depth所划定的区域内移动。
- 编写飞行敌人的脚本,以达到预期效果。
我这里简单地写了敌人的动画切换和攻击时停下(AI Path没有提供停止寻路的接口。有博客说把Max Speed设为零来替代,但我认为直接把"AI Path"组件enable = false,效果更好)。
最终效果
参考资料
【A* Pathfinding】超级简单的Unity2D寻路
使用A* Pathfinding Project的一些心得
Pathfinding in 2D
知乎-Unity寻路插件(A* Pathfinding)入门教程十三:2D中的寻路
补充
A*Pathfinding中的所有寻路都是基于nodes的,具体参看Using nodes。
__EOF__

本文链接:https://www.cnblogs.com/OtusScops/p/14838155.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!