[Unity] 利用NavMesh 及 Nav Mesh Agent 實現導航功能

更新 發佈閱讀 5 分鐘

遊戲裡面都會有導航系統,在Unity裡面就是利用NavMesh實現這個功能。
其實說是導航系統,NavMesh是建立導航系統的可移動範圍,再根據你的需求寫導航功能。


raw-image

以下來實作:
首先建立一個Terrain、一個Cube及一個Cylinder,如紅圈裡的示範

raw-image

接著設定個別物件,選定Cylinder後找到Navigation欄位裡的Object,如果找不到Navigation的話可以在Windows裡面找到。
首先需要把物件設定成Navigation Static,在Unity裡如果要烘焙可移動需的話需要先把物件設定成不可移動及可以行走的特性,像是牆壁或是階梯等等。

raw-image

也可以在選取物件後在Inspector視窗裡的Static選取

raw-image

Generate OffMeshLinkenerate OffMeshLink是分離移動區連結的設定,這邊先不介紹。
接著是Navigation Area,這裡有Walkable、NotWalkabe及Jump。我們先移動到Area標籤裡,可以看到以下畫面,這裡可以看到這三個有各自的Cost,Cost代表是行走的難易度,
Not Walkabe字面上當然是不能行走,可行走Walkable是1,需要跳躍的是Jump的2,所以在導航時會優先選優先度高的Walkable而不是Jump。
當然也可以依需求設定新的區域的優先度。

raw-image

最後是Bake標籤,當設定都完成後就到Bake標籤,可以看到下面欄位分別表示:

Agent Radius:含Agent元件的物件半徑,判斷是否接觸牆壁、障礙物或目標,同時也會影響某些路徑是否成立。

Agent Height:含有Agent元件的物件高度,如果是有天花板的環境下,有條路徑可通行但天花板低於移動物件,還是會被視為不可通行。

Max Slope:決定斜坡的最大角度,低於此數值可以被視為路徑,超過則不可通行。

Step Height:決定高度差在多少數值內,會被視為相連路徑,超過則不可通行。

raw-image

這裡的Generate Off Mesh Links也先不做介紹,接著是Advanceddvanced欄位,分別表示:

Manual Voxel Size:決定生成NavMesh的像素大小,會影響生成出來的NavMesh精確度。

Min Region Area:決定最小面積,物件的面積小於此數值,不會被視為可移動的路徑。

Height Mesh:會儲存原始高度的資訊,但會影響效能與記憶體。

設定好後就可以按下Bake烘焙NavMesh了,完成後會看到下圖,可行走區域會以藍色表示,畫面右下角可以選擇是否開始NavMesh。

raw-image

接著就是導航部份了!!

不過由於這次準備時間錯開,不小心弄壞了,所以重新拉了幾個cube

這次的場景如下

raw-image

首先把要導航的物件加進去,接著幫她加入Nav Mesh Agent這個component

raw-image

參數說明

Agent Type:導航類型,可以設定多種導航的模式,可以在Navgation視窗中的Agent標籤裡設定

Base Offset:物件相對於Agent元件的位移

Speed:導航時的移動速度

Angular Speed:導航時的旋轉速度

Acceleration:導航時的最大加速度

Stopping Distance:與目標達到一定距離時停止導航

Auto Braking:是否自動剎車,避免到目標時超過目標

Radius:元件的半徑

Height:元件的高度

Quality:迴避障礙物的準確度

Priority:迴避優先度,優先度高的物件不會被優先度低的物件阻擋

Auto Traverse Off Mesh Link:是否要讓物件做Off Mesh Link分離移動區的移動

Auto Repath:如果原本的路徑失效是否要重新規畫路徑

Area Mask:選擇路經規劃區域

raw-image

設定完成後新增一個script給他,這邊使用的是C#,內容如下

using UnityEngine;
using UnityEngine.AI;
public class NavToTarget : MonoBehaviour {
public Transform target;
public NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();//取得物件的Agent元件
}
void Update()
{
agent.SetDestination(target.position);//取得目標的位置
}
}

接著在場景中新增一個目標,把目標指派給物件

raw-image

設定完成後就可以執行看看效果如何囉!


留言
avatar-img
留言分享你的想法!
avatar-img
程式輕鬆玩
73會員
184內容數
這裡將以輕鬆風格,深入探討程式設計的基礎和高級概念。從程式語言到演算法,我們將以易懂的方式解釋每個主題,讓你輕鬆掌握。無論你是初學者或有經驗者,都能在這裡找到適合你的內容。無論你的目標是成為專業開發者還是擴展知識,我們都會陪伴你一同成長!
程式輕鬆玩的其他內容
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週科技圈掀起多項重磅消息:OpenAI於4月14日釋出GPT‑4.1系列模型,進一步強化編碼與長文理解能力 Reuters;Chipolo推出POP藍牙追蹤器,同時支援Apple與Google尋找網路 The Verge;南韓新創RLWRLD完成1,480萬美元募資,將打造專屬機器人基礎模型
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/20
本週遊戲動態涵蓋經典 25 週年重返 PC 平台、回合制策略新作重燃星戰熱潮、Remedy 荒誕合擊新作搶先曝光、Game Pass 下架名單震撼登場,以及 Steam 獨立新秀推薦不容錯過 PC GamerWindows Central。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
2025/04/08
近來因為川普政府啟動全新一輪對等關稅政策,全球貿易風暴席捲而來,而台灣面臨的衝擊更是不容小覷。美方以台灣過去對美出口關稅達64%為依據,採取「對等關稅」原則回敬徵收32%關稅,這一舉措不僅使得國際市場恐慌連連,台股也出現劇烈下跌,吸引了各界關注。
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
遊戲裡面都會有導航系統,在Unity裡面就是利用NavMesh實現這個功能。 其實說是導航系統,NavMesh是建立導航系統的可移動範圍,再根據你的需求寫導航功能。
Thumbnail
遊戲裡面都會有導航系統,在Unity裡面就是利用NavMesh實現這個功能。 其實說是導航系統,NavMesh是建立導航系統的可移動範圍,再根據你的需求寫導航功能。
Thumbnail
這篇文章將會介紹 Unity Input System,這是一個適用於不同平台切換的官方系統,用於玩家按鍵輸入與不同控制器的操作。
Thumbnail
這篇文章將會介紹 Unity Input System,這是一個適用於不同平台切換的官方系統,用於玩家按鍵輸入與不同控制器的操作。
Thumbnail
這節課主要介紹Midjourney 的命令列表(Command List),是用來操作機器人最主要的指令。
Thumbnail
這節課主要介紹Midjourney 的命令列表(Command List),是用來操作機器人最主要的指令。
Thumbnail
這個教學是關於探索地圖的教學 教學包含了 使用 imagemap 出現提示 建立可互動式地圖 解謎系統 設定 / 使用變量 根據成功或失敗出現對應的畫面 這篇會稍微比較長也比較複雜ㄧ點如果中間有甚麼不懂的歡迎私訊我!
Thumbnail
這個教學是關於探索地圖的教學 教學包含了 使用 imagemap 出現提示 建立可互動式地圖 解謎系統 設定 / 使用變量 根據成功或失敗出現對應的畫面 這篇會稍微比較長也比較複雜ㄧ點如果中間有甚麼不懂的歡迎私訊我!
Thumbnail
這篇文章將會講述彈簧物件的物件介紹、製作流程、展示影片。
Thumbnail
這篇文章將會講述彈簧物件的物件介紹、製作流程、展示影片。
Thumbnail
前言   這篇文章將會介紹 UI 排版的實用工具。 GridLayoutGroup | 網格排版工具   這是我在撰寫遊戲 UI 時很常使用的 Component 今天在思考新的文章要寫什麼時發現還沒寫過,因此來跟大家介紹這時用的小組件。 運作原理   本質上來說,這個組件會控制他所有的子物件,並且
Thumbnail
前言   這篇文章將會介紹 UI 排版的實用工具。 GridLayoutGroup | 網格排版工具   這是我在撰寫遊戲 UI 時很常使用的 Component 今天在思考新的文章要寫什麼時發現還沒寫過,因此來跟大家介紹這時用的小組件。 運作原理   本質上來說,這個組件會控制他所有的子物件,並且
Thumbnail
這篇文章將會講述新增造型的種類及簡單介紹。
Thumbnail
這篇文章將會講述新增造型的種類及簡單介紹。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News