天天看點

Unity導航 (尋路系統Nav Mesh Agent)

第一種 簡單尋路 地面接觸到的。到達目标點不用跳躍能夠一直走路到達。

場景視圖中簡單搭設幾個物體。

膠囊體為尋路者,黃球為目标點 紅地闆,綠色障礙物。

現将地闆以及障礙物選中 在檢視面闆設定靜态為Navigation Static 如圖2

然後菜單欄選擇視窗 Window –Navigation

然後選擇All—Bake烘焙如圖

有三個頁面參數可以調節烘焙效果,參數具體參照聖典解釋。

注意 膠囊體和目标物都要烘焙在藍色格子裡面。否則不能實作,可以調節第二個頁面裡的參數調節烘焙大小。

然後給膠囊體添加導航元件

菜單欄Component—Navigation-Nav Mesh Agent

元件參數詳情參見聖典.

然後給膠囊體添加代碼,代碼内容如圖

aa即為目标物。在檢視面闆将球給aa。運作即可實作簡單尋路。如圖

第二種尋路 不連續,可以跳躍的尋路

先搭設簡單場景 如圖 如果跳躍必須加三個跳闆如圖長條白闆

将地面和高台(綠色)一起設定為Navigation Static

給中間跳闆加一個元件 Component—Navigation—Off Mesh Link 其中有幾個屬性 start和end 這就是起跳位置和落地位置,将兩個跳闆用滑鼠拖拽上即可。膠囊體添加尋路元件和第一種一樣。添加腳本。腳本一樣。所有元件選擇完畢後最後選擇烘焙。

烘焙時 All 下面兩個屬性都要選中。

烘焙時有時會出現上圖有個圓圈位置未烘焙上,原因是膠囊體進入地面太多。可以再将膠囊體移動位置至藍色網格上即可 運作即可實作。以上步驟落下一步該系統便不能實作。 細心即可。

Agent Radius 代理半徑 半徑越小生成網格的面積越大,也越靠近靜态物體的邊緣。

Agent Height 代理高度

Max Slope 物體擡升台階的高度

Drop Height 允許的最大下落距離

Jump Height 允許的最大跳躍距離

Radius 代理逃避半徑 Height 代理經過障礙物下方目的高度

Base Offset 偏移距離

Steering 操作 指導

Speed 代理最大移動速度 Angular Speed 角速度

Acceleration 最大加速度 Stopping Distance 停止時和目标的距離(距離目标多少時停下)

Auto Braking 該代理是否自動制動去避免超過目的點

obstacle avoidance 故障排除

Quality 品質 Priority 優先級

Path Finding 路徑尋找中……

Auto Traverse Off Mesh Link 該代理是否自動穿過Off Mesh Links?

Off-mesh連接配接用于連接配接不相交區域的導航網格。通常,當該屬性設定為true時,角色應該有能力自動通過或者穿過連接配接。但是,在需要特殊控智移動的時候它也可以被設定為false。

Auto Repath 自動更新路徑(例如目标位置改變,需要重新更新路徑)

Area Mask 區域遮擋 (代理的行動區域,能在什麼地方走。預設Everthing 任何地方)

更多unity2018的功能介紹請到paws3d爪爪學院查找。

繼續閱讀