IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
大家好,我是優(yōu)就業(yè)的小優(yōu),又和大家見面了。
今天我們一起來(lái)學(xué)習(xí)Unity中的導(dǎo)航網(wǎng)格代理組件,這個(gè)組件的作用就和它的名字一樣是用來(lái)進(jìn)行自動(dòng)尋路。它會(huì)幫我們?cè)谟螒驁?chǎng)景中生成一塊區(qū)域,哪里可以通行,哪里無(wú)法通行,便于游戲角色在場(chǎng)景中自動(dòng)尋路,完成場(chǎng)景漫游。在游戲中,經(jīng)常會(huì)有這樣的場(chǎng)景,玩家進(jìn)入副本時(shí),怪物會(huì)自行規(guī)劃最優(yōu)路徑,避開障礙物,找到玩家位置,進(jìn)行攻擊。角色在做任務(wù)時(shí),玩家只需要點(diǎn)擊任務(wù),角色就會(huì)自動(dòng)尋路過(guò)去。
需要注意的是,它只對(duì)3D環(huán)境有效,所以我們首先搭建需要使用的場(chǎng)景,下圖中創(chuàng)建的Plane就是我所使用的場(chǎng)景。
現(xiàn)在來(lái)看看如何使用導(dǎo)航也就是NavMesh,在完成場(chǎng)景搭建后,從窗口菜單選擇Navigation,會(huì)彈出一個(gè)如下圖所示的面板,它就是我們的NavMesh導(dǎo)航網(wǎng)格。
Agent Radius:定義網(wǎng)格和地形邊緣的距離
Agent Height:定義可以通行的最高度
Max Slope:定義可以爬上樓梯的最大坡度
Step Height:定義可以登上臺(tái)階的最大高度
Drop Height:允許最大下落距離
Jump Distance:允許最大的跳躍距離
在Bake(烘焙場(chǎng)景)之前一定要確定勾選Static
其實(shí)就是確保Static下勾選了Navigation Static,這里的Navigation Static意味著在游戲運(yùn)行期間,這個(gè)游戲?qū)ο蟛荒芤苿?dòng)。
可以根據(jù)自行的需要去設(shè)置參數(shù),設(shè)置好參數(shù)之后點(diǎn)擊Bake(烘焙場(chǎng)景),等到烘焙完畢會(huì)看到場(chǎng)景中覆蓋一層藍(lán)色的表面,藍(lán)色的一層叫做可行走區(qū)域,也就是讓玩家和敵人能夠運(yùn)動(dòng)的區(qū)域。
此時(shí),游戲當(dāng)中已經(jīng)有了NavMesh了,接下來(lái)去實(shí)現(xiàn)讓玩家運(yùn)動(dòng)的功能,要想讓玩家運(yùn)動(dòng),我們可以通過(guò)一個(gè)組件叫NavMeshAgent組件,它是用來(lái)控制物體在NavMesh上移動(dòng),創(chuàng)建一個(gè)Cube作為玩家,為其添加NavMeshAgent組件。
Speed:最大移動(dòng)速度
Angular Speed: 運(yùn)動(dòng)時(shí)的最大角速度
Acceleration:最大加速度,控制速度的快慢變化
Stopping Distance:制動(dòng)距離,到達(dá)目標(biāo)點(diǎn)的距離小于這個(gè)值
Auto Braking:勾選,到達(dá)目標(biāo)點(diǎn)后停止運(yùn)動(dòng),沒有緩沖運(yùn)動(dòng)
要想讓物體移動(dòng),需要給物體一個(gè)移動(dòng)目標(biāo)點(diǎn),所以在場(chǎng)景中創(chuàng)建一個(gè)Point,作為目標(biāo)點(diǎn)。
準(zhǔn)備工作已經(jīng)完畢,給Cube添加腳本CubeMove,編寫讓其移動(dòng)的代碼。
只需要簡(jiǎn)單的六行代碼就可以實(shí)現(xiàn)自動(dòng)尋路功能,是不是很簡(jiǎn)單啊。
>>本文地址:http://hqfphsz.com/zhuanye/2020/51799.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?