Unity2017以上的版本,其導航系統(tǒng)比5.X版本新增加了一些功能,最顯著的就是導航窗口的更新,如下圖:
在Agents里面多出來了AgentTypes,其下面可以添加不同的代理類型,每個類型都可以設置不同的半徑、高度、坡度和所上臺階的高度,給場景中的物體添加NavMeshAgent組件后,可以選擇不同的AgentType,如下圖所示:
但是這里會出現(xiàn)一個問題,即使選擇了不同的AgentType,運行的時候會報錯,如下圖所示:
如果選擇Humanoid就沒有出現(xiàn)上面的報錯,主要是因為不同的AgentType需要其相對應的導航路徑,如果兩個物體分別選擇了player和Enemy兩個AgentType,則需要生成兩個不同的導航路面,直接使用Unity2017原生的組件是沒有辦法實現(xiàn)的。
對此Unity官方提供了另外的導航組件,可以實現(xiàn)不同的游戲物體,使用不同的AgentType沿著不同的導航路徑進行自動尋路。獲取新的導航組件步驟如下:
1.進入導航窗口的Bake界面,如下圖所示:
2.點擊上圖中的鏈接,進入GitHub,如下圖所示:
3.然后點擊Download ZIP,下載壓縮包,然后解壓縮,打開解壓縮后的文件夾,找到Assets,里面的文件目錄如下:
4.在Examples文件夾中給出了導航系統(tǒng)的最新功能的7個案例,大家可以通過案例來了解導航的新增功能都有哪些,案例目錄如下:
5.在NavMeshComponents里面就是新增加的腳本組件,目錄如下所示:
6.實現(xiàn)上述新增功能,必須用到新增加的腳本組件,但是如果把這些腳本組件直接導入到Unity2017引擎編輯器中后會報一堆錯,通過Github上的提示,上述所下的腳本組件需要在Unity2019.3.0版本或者更高版本環(huán)境下運行:
下面對上述的案例所實現(xiàn)的功能進行大致說明:
案例1所實現(xiàn)的功能:不同的游戲物體可以選擇不同的AgentType,然后按不同的導航路徑移動;
案例2所實現(xiàn)的功能:導航路徑實時動態(tài)烘焙,點擊鼠標左鍵,物體移動到點擊位置,遇到中間斷的路徑時,點擊空格鍵可以生成小平板,然后在小平板上動態(tài)的生成導航路徑;
案例3所實現(xiàn)的功能:自動尋路的物體自身坐標與世界坐標不一致時,物體運動的效果,例如物體爬坡;
案例4所實現(xiàn)的功能:默認導航網(wǎng)格只生成一部分,當點擊地面時,動態(tài)生成新的網(wǎng)格,并且把位置同步給要自動尋路的物體,讓物體走到鼠標點擊的位置;
案例5所實現(xiàn)的功能:點擊地形上不同的位置,動態(tài)生成導航網(wǎng)格,但網(wǎng)格不全是平的,有一定的曲面,如下圖:
案例6所實現(xiàn)的功能:按下鼠標左鍵在地面上拖動,更改導航網(wǎng)格,如下圖:
案例7所實現(xiàn)的功能:分離路面導航時,物體有向上跳的動作,而不是直接平移,如下圖:
大家可以根據(jù)實際要實現(xiàn)的功能,選擇不同的場景研究一下即可。
>>本文地址:http://www.yiyunku.cn/zhuanye/2021/71479.html
聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?