2016-03-13 42 views

回答

1

不幸的是,Unity的基於導航網格的導航系統只能用於與y軸對齊的地形 - 也就是說,世界的y軸用作向上矢量,並且使用地形的斜率計算作爲參考。

只有你的球形物體的頂部被認爲是可行走的原因是因爲如果你認爲y軸是向上的矢量,那麼其餘的地形的斜率大於navmesh烘烤設置所允許的。

解決此問題的唯一方法是編寫自定義解決方案 - 但嘿,幸運的是not the first one to pose such a question。普遍接受的方法是使用具有自定義啓發式功能的A* algorithm(基於網格的頂點)來計算到目的地的最短路徑。

這裏的a good tutorial on how to implement A* in Unity,這將給你一個基本的理解,所以你可以計算出如何將算法應用到自身環繞的地形。如果你沒有計劃編寫你自己的解決方案,還有an existing A* asset for sale on the Unity Asset Store(免費版本也可用),這被認爲是Unity自己的導航系統的一個可靠的改進,並且可以適用於非垂直地形,如你的一些調整。

希望這會有所幫助!如果您有任何問題,請告訴我。