找回密碼
 注冊帳號

掃一掃,訪問微社區

navmesh層(僅限專業版)

2015-1-6 18:11| 發布者: 楊炎| 查看: 1624| 評論: 0|原作者: 蠻牛|來自: unity3d腳本manual

摘要: navmesh 層(僅限專業版)導航系統的主要任務就是找出導航空間中兩點之間的最佳路徑。最簡單的情況是最佳路徑為最短路徑。然而,在許多復雜環境中,某些區域比其他區域更難穿越(比如渡河比過橋更費時費力)。為模擬 ...

mesh" target="_blank" class="relatedlink">navmesh 層(僅限專業版)

導航系統的主要任務就是找出導航空間中兩點之間的最佳路徑。最簡單的情況是最佳路徑為最短路徑。然而,在許多復雜環境中,某些區域比其他區域更難穿越(比如渡河比過橋更費時費力)。為模擬此種情況,unity 利用成本概念,將成本最低的路徑定義為最佳路徑 (optimal path)。為了管理成本,unity 推出了導航網格層 (navmesh layer)概念。每個標為導航網格靜態 (navmesh static)的幾何結構都屬于導航網格層 (navmesh layer)。

尋路期間,不是比較潛在路徑片段的長度,而是評估每個片段的成本。以特定片段的導航網格層 (navmesh layer) 成本來衡量每個片段的長度來完成此過程。請注意,當所有成本設置為 1 時,最佳路徑與最短路徑相同。

如需定義每個工程的自定義層

請轉至編輯 (edit) -> 工程設置 (project settings) -> 導航網格層 (navmesh layers)

轉至其中一個用戶層,設置名稱和成本

該名稱將會在場景的任何位置使用,以識別導航網格層

成本表示橫穿導航網格層的難度。1 為默認值,2.0 表示難度是 1 的兩倍,而 0.5 表示難度是 1 的二分之一,等等。

這里有 3 個內置層

默認層 - 指定未另作說明的所有內容的成本

不可行走層 - 忽略成本

跳躍層 - 自動生成分離網格鏈接 (off-mesh link) 的成本

如需將自定義層應用到特定幾何結構中

請在編輯器中選擇此幾何結構

上拉導航網格 (navigation mesh)窗口(窗口 (window) -> 導航 (navigation))

轉至對象 (object)標簽頁,為該對象選擇需要的導航層 (navigation layer)

如果在導航網格顯示 (navmesh display)窗口中啟用了顯示導航網格 (show navmesh),則不同層應在編輯器中以不同顏色顯示。

如需告知代理什么層可以穿越或什么層不可以穿越

請轉至代理幾何結構的navmeshagent組件

修改可行走的導航網格 (navmesh walkable)屬性

請記得從腳本中設置代理的目的地屬性

請注意:不建議將成本值設置為小于 1 的值,因為在此類情況中,基本尋路法不能確保最佳路徑。

導航網格層的一個不錯的應用示例:

您設計一條行人 (navmeshagent) 需要穿過的道路。

中間的人行道是其路過的首選之地

為該條道路的大部分設置高成本的導航網格層,而為人行道設置低成本的導航網格層。

這將使代理采用經過人行道的路徑

高級尋路的另一個相關話題是分離網格鏈接

(返回導航與尋路)

相關閱讀

文章點評
相關文章
女校游泳队彩金