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點才走回正軌。

追趕開發進度就像汽車拉力賽一樣,竭盡全力的把速度拉上,但也需要加強預判,在過彎時,小心謹慎,放慢速度。
在穩的基礎上追求快。畢竟“翻車”了還更浪費時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章