Unity 集成A*寻路插件-踩坑与反思

发生于2020年07月1日~05日。

近期在用unity做一个模拟经营类游戏的原型。需要实现顾客走到指定目标的功能。
查阅相关资料后,发现有现成的寻路系统,可以使得顾客绕过障碍走到目的地。
我只要关心目的地、障碍物、顾客就可以了,如何到达则由寻路系统去关心。
这也非常适合目前场景需要频繁变动的情况。

查阅资料后,算法使用 A* 寻路就OK。并找到了几个 A* 寻路插件。
然后,基于教程数量和评价,对几个寻路插件经过一番对比后,使用了AstarPathfindingProject(免费版),。

但引入寻路系统的过程,踩坑了,花费了1星期左右,才实现了我想要的功能。

回想起来,主要原因是,在涉及知识盲区时,没有放慢脚步好好理解概念,依然选择了快速推进。

时间线

  1. 一开始对寻路系统的概念完全是空白的,需要有哪些组件配合工作,哪些组件又是什么样的作用,并不知道。
  2. 看了2个10分钟左右的入门视频教程后,开始着手尝试。(这一步没问题)
  3. 基本实现了寻路功能了,但是细节做得不好,有时候寻路时,对象会被卡在路障上。
  4. 怀疑是寻路插件的问题,因为是用了免费版的,猜想,难道免费版的AI比较憨?
  5. 网上找了个pro版的AstarPathfindingProject,试验了效果还是一样。
  6. 又开始怀疑是不是 A* 寻路算法的缺陷?然后又去对比了RVO算法。然后也看教程,换成了RVO寻路,并且折腾、测试了一番。(这里花了许多时间)
  7. 期间也对比了其他插件,想要换个插件试试。(也浪费时间了)
  8. (此时我依然没有完全了解 AstarPathfindingProject 插件里核心参数的含义)
  9. 于是看更多的视频教程,看官方文档,了解核心组件及其参数的含义。 (花了一下午)
  10. 最后,通过修改 Collider 的形状和调整寻路组件的参数,就把问题解决了。

从 第4点开始就走偏了,直到第8点才走回正轨。

追赶开发进度就像汽车拉力赛一样,竭尽全力的把速度拉上,但也需要加强预判,在过弯时,小心谨慎,放慢速度。
在稳的基础上追求快。毕竟“翻车”了还更浪费时间。

原文地址:https://www.cnblogs.com/ZJT7098/p/13994401.html