Unity多單位戰斗尋路問題的一種解決辦法


Unity多單位戰斗尋路問題的一種解決辦法

Unity提供了NavMesh 導航組件

 

NavMesh是在實踐中通用性最好的一種導航方式,但是Unity的實現並沒有完全提供一個開放自由的API。

主要的麻煩是:

1.不能脫離Editor生成NavMesh。

2.NavMesh信息保存在場景中,必須隨場景加載。

 

他的使用方式主要是在Editor階段設定障礙關系。

NavMeshAgent 作為移動單位來尋路

NavMeshObstacle 作為動態障礙

NavMeshAgent和NavMeshObstacle作為障礙默認都是采用了一種像物理系統的方式去繞開,默認表現並不好

 

過去在我們的實踐中還有一個新的問題

3. NavMeshObstacle障礙是用碰撞圓柱體硬擠,並沒有影響路徑。有障礙的地方其他單位是硬擠過去,效果很不好。

 

一直以來這些問題讓這個NavMesh系統有一些雞肋。

 

unity某個版本給NavMeshObstacle 增加了一個選項

意義非常重大,可惜的是我並沒有看到資料介紹他,偶然才發現他的意義。

 

這個勾選上帶來的意義是

運行中可以實時計算navmesh

這樣的修改才可以影響尋路系統,實現停止的單位影響其他單位的路徑。

 

問題2 和 問題3都可以一定程度上的解決

 

經實驗,這個功能的范圍始終是個矩形。

與模型無關,尺寸取得是模型的邊界。

無論什么形狀的模型,都取他邊界的矩形。可以旋轉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM