添加 Mega Go 追蹤目標
本文介紹了如何添加和配置 Mega Go 的追蹤目標。
開始之前
- 檢查 我的定位功能可以使用了嗎? 確認已下載正確地圖。
- 導入最新版本的 EasyAR 插件並啟用 Mega Go 功能
- 了解 Unity AR 的追蹤目標 的基本概念和使用方法
附註
以下內容及工具僅適用於使用 EasyAR Mega Go 開發 Unity 應用的過程。需要插件版本 >= 4003.1。
Mega Go 不支援小程序開發。
本文內容需要工程中已經導入如下 Unity 包:
com.easyar.sense
Mega Go 的追蹤目標
Mega Go 的追蹤目標是包含 MegaGoBlockController 組件的空物體,它在 Unity 中表示一個 block。

附註
在未導入 com.easyar.mega 包時,block 的編輯器功能不可使用,但不影響運行時的追蹤效果和功能。
創建追蹤目標
在 Hierarchy 視圖中 空白 處點擊右鍵,通過菜單 EasyAR Sense > Mega > Target : Mega Go Block 可以創建 Mega 的追蹤目標。

在腳本中,可以使用 ARSessionFactory.CreateController 創建。
ARSessionFactory.CreateController<MegaGoBlockController>();
配置追蹤目標
使用 target 之前,需要配置其資料來源和追蹤器。
配置 target 資料來源
追蹤目標只有在正確配置其來源後才能被識別和追蹤。
在 Hierarchy 視圖中可以選擇 block 節點後填寫 block 的 Path Type 和 Path。

在腳本中,可以在組件 MonoBehaviour.Start() 前修改 Source 以設置 block 的來源。
block.Source = new MegaGoBlockController.FileSourceData(PathType.Absolute, path);
其中
- PathType 是 emg 檔案路徑的類型,可以是絕對路徑(
Absolute)或工程的 StreamingAssets 路徑(StreamingAssets)。 - Path 是 emg 檔案的路徑,PathType 為
Absolute時是檔案系統中的絕對路徑,PathType 為StreamingAssets時是其在工程中 StreamingAssets 資料夾下的相對路徑。
提示
由於 emg 檔案可能較大,如果應用包體大小過大,建議僅在測試階段使用 StreamingAssets 路徑,正式發佈時使用絕對路徑並通過資源包或其它方式將 emg 檔案放置在應用可存取的檔案系統路徑中。
配置 target 使用的追蹤器
追蹤目標會被配置的追蹤器載入並追蹤。
重要事項
Mega Go 的追蹤器同一時間只能追蹤一個 block,若同時有多個 block 被配置到同一個追蹤器中,則只有最後被載入的 block 會被使用。
在 Hierarchy 視圖中可以選擇 block 節點後選擇 session 中的 Mega Go Tracker。
![]()
在腳本中,可以修改 Tracker 以設置 block 的追蹤器。
block.Tracker = megaGoTracker;
Tracker 可以在運行時隨時修改,載入/卸載會在 session 運行時發生。如果設置 Tracker 為 null,該 target 將會被從之前設置的追蹤器中卸載。
附註
target 被追蹤有幾個關鍵條件:
- 該 Source 所對應的 block 必須處於可用狀態(正式資料始終離線可用,測試資料只有服務中存在該資料時才可用)。
- MegaGoBlockController.Source 的檔案必須被正確載入。
- 檔案載入後沒有載入其它 block 對應的檔案。
追蹤目標的生命週期
一個常見的追蹤目標生命週期如下:
flowchart LR
sstart((session 啟動))
sstop([session 停止])
start("Target.Start")
load("載入")
tracking[["持續追蹤"]]
sstart --> load --> tracking --> sstop
start -. "Target.Tracker = tracker" .-> load
流程大致分為幾個階段:
- 載入:追蹤目標被配置的追蹤器載入,這會發生在 target 自身 Start() 及 session 啟動之後。
- 追蹤過程:追蹤目標被定位到之後,追蹤器會持續追蹤目標的位置和狀態,直至目標被卸載或另一個目標被載入。
- 卸載:追蹤目標被從追蹤器中卸載,追蹤器不再追蹤目標。這會發生在 session 停止或 target 被設置為不使用追蹤器之後。
