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