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