Unity 集成A*寻路插件-踩坑与反思
发生于2020年07月1日~05日。
近期在用unity做一个模拟经营类游戏的原型。需要实现顾客走到指定目标的功能。
查阅相关资料后,发现有现成的寻路系统,可以使得顾客绕过障碍走到目的地。
我只要关心目的地、障碍物、顾客就可以了,如何到达则由寻路系统去关心。
这也非常适合目前场景需要频繁变动的情况。
查阅资料后,算法使用 A* 寻路就OK。并找到了几个 A* 寻路插件。
然后,基于教程数量和评价,对几个寻路插件经过一番对比后,使用了AstarPathfindingProject(免费版),。
但引入寻路系统的过程,踩坑了,花费了1星期左右,才实现了我想要的功能。
回想起来,主要原因是,在涉及知识盲区时,没有放慢脚步好好理解概念,依然选择了快速推进。
时间线
- 一开始对寻路系统的概念完全是空白的,需要有哪些组件配合工作,哪些组件又是什么样的作用,并不知道。
- 看了2个10分钟左右的入门视频教程后,开始着手尝试。(这一步没问题)
- 基本实现了寻路功能了,但是细节做得不好,有时候寻路时,对象会被卡在路障上。
- 怀疑是寻路插件的问题,因为是用了免费版的,猜想,难道免费版的AI比较憨?
- 网上找了个pro版的AstarPathfindingProject,试验了效果还是一样。
- 又开始怀疑是不是 A* 寻路算法的缺陷?然后又去对比了RVO算法。然后也看教程,换成了RVO寻路,并且折腾、测试了一番。(这里花了许多时间)
- 期间也对比了其他插件,想要换个插件试试。(也浪费时间了)
- (此时我依然没有完全了解 AstarPathfindingProject 插件里核心参数的含义)
- 于是看更多的视频教程,看官方文档,了解核心组件及其参数的含义。 (花了一下午)
- 最后,通过修改 Collider 的形状和调整寻路组件的参数,就把问题解决了。
从 第4点开始就走偏了,直到第8点才走回正轨。
追赶开发进度就像汽车拉力赛一样,竭尽全力的把速度拉上,但也需要加强预判,在过弯时,小心谨慎,放慢速度。
在稳的基础上追求快。毕竟“翻车”了还更浪费时间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了