08 導航系統

     NavMesh時3D遊戲中Unity在場景中烘焙的導航網格,將遊戲中複雜的場景簡化爲帶有信息的網格經過一系列的計算實現自動尋路的功能。3d

自動尋路:
Step1:生成NavMesh,在搭建好場景後將要烘焙導航的部分設置爲靜態,在Window中點擊Navigationblog

角色半徑:半徑越小,在場景中烘焙出的路面就越大
角色高度:設置烘焙到一些洞中,或者是上方有物體的路面
最大坡度:可烘焙的最大坡度,即角色導航時能夠上去的地方
可跳下高度:角色能夠跳下的高度
可跨越寬度:設置該值後在烘焙,能夠出現一些並無路但物體能夠直接跨越的地方。遊戲

Step2:爲遊戲組件添加NavMeshAgent組件。it

優先級大的物體的自動避讓的能力強
Step3:代碼控制實現自動尋路io

NavMeshAgent常見屬性:
(1)Speed:物體行進的最大速度。
(2) StoppingDistance:離目標多遠中止。
(3)RemainingDistance:達到目標的剩餘距離。
(4)AvoidancePriority:躲避障礙物優先級。
(5)NavMeshWalkable:該物體能夠行進的導航網格設置。im

分離路面導航d3

要實現如同上圖中從A點跳到B點,在兩個點的所在位置添加空物體,給兩個空物體一個公共的父物體,爲父物體添加OffMeshLink組件top

分層烘焙路面
可將路面設置不一樣的層,從而設置物體那些層能夠經過,那些不能經過。db

添加動態障礙
給要當作障礙的遊戲物體添加NavMeshObstacle組件img

shape可選擇的有盒狀和膠囊體狀的勾選Carve後,物體碰到障礙後會自動尋找下一條最近路線。

相關文章
相關標籤/搜索