自動尋路Navmesh高級(尋路網格)


 

之前我們一起學習瞭如何使用Navmesh組件來實現最基本的角色自動尋路。今天我們再繼續深入探索Navigation組件的高級功能。在本文中,你將瞭解到如何在兩個隔離層自動生成尋路網格?如何手動指定尋路網格的路線?以及尋路網格層的應用。

•   隔離層自動生成尋路網格

•               (源碼scene1.unity)

•               1.創建Plane實例P1,P2,兩者之間出現一條鴻溝。直接控制角色位移是無法通過的。

•               2.打開Navigation窗口,分別選中P1,P2,分別設置Navigation Static 和OffMeshLink Generatic

•               3.保存場景,點擊場景烘焙按鈕Bake。結束後我們可以看到P1,P2除了自身生產尋路網格外,它們直接還生成了連接紐帶。

•               4.添加角色模型Solder,爲其添加NavMeshAgent(Component->Navigation->NavMeshAgent)

5.給Solder添加PlayerController腳本

 

 

手動指定尋路網格方向

1.scene1.unity的基礎上,將P1,P2的OffMeshLink Generatic去除

2.在P1上新建一個空的GameObject Start,P2上新建一個空的GameObject End

3.選中start,爲它添加Off Mesh Link組件Component->Navigation->OffMeshLink

4.設置Off Mesh Link組件的屬性,Start Point 爲 start,End Point爲end

5.烘焙場景。我們可以看到有一條紐帶從start指向end

點擊地圖,可以看到角色如果要跨越P1和P2,一定是沿着我們手動創建的路徑

 

 

•   導航網格障礙物 NavmeshObstacle

之前我們都是用固定的物體作爲障礙物,然後烘焙場景。Unity還提供了動態的障礙物。任何一個GameObject都可以添加Navmesh Obstacle組件,變成一個障礙物。具體步驟是Component->Navigation->NavmeshObstacle.它有兩個屬性:半徑和高度,可以設置跟你的物品差不多的體積大小。

發佈了24 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章