添加 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 被設置爲不使用跟蹤器之後。
