• 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点才走回正轨。

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

  • 相关阅读:
    9.27作业
    9.20作业
    9.13作业
    9.6作业
    localstorage,sessionstorage使用
    oracle 客户端重新安装遇到的问题
    HTML5学习笔记(<command>,<details>,<dialog>)
    HTML5学习笔记(HTML5新标签<bdi>)
    html5学习笔记(html5新标签<aside>)
    html5学习笔记(html5新标签<article>)
  • 原文地址:https://www.cnblogs.com/ZJT7098/p/13994401.html
Copyright © 2020-2023  润新知