添加 Mega 跟踪目標
本文介紹了如何添加和配置 Mega 的跟蹤目標。
開始之前
- 檢查 我的定位庫可以使用了嗎?
- 導入最新版本的 EasyAR 插件並啟用 Mega 功能
- 了解 Unity AR 的跟蹤目標 的基本概念和使用方法
附註
以下內容及工具僅適用於使用 EasyAR Mega 開發 Unity 應用的過程。
如果您在開發小程序,請參考 使用 Unity 編輯器創建並上傳標注(小程序開發)。
如果您不在開發 Unity 應用,但希望查看 Mega 建圖結果,請參考 Mega 使用指南中的 預覽3D 實景網格。
如果您不在開發 Unity 應用,但需要模擬運行查看定位效果,請參考 Mega 使用指南中的 模擬運行效果預覽。
本文內容需要工程中已經導入如下 Unity 包:
com.easyar.sense
Mega 的追蹤目標
Mega 的追蹤目標是包含 MegaBlockController 元件的空物件,它在 Unity 中表示一個 block。

創建跟蹤目標
在 Hierarchy 視圖中 空白 處點擊右鍵,透過菜單 EasyAR Sense > Mega > Target : Mega Block 可以創建 Mega 的跟蹤目標。

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

在腳本中,可以在組件 MonoBehaviour.Start() 前修改 Source 以設置 block 的來源。
block.Source = new MegaBlockController.BlockInfoSourceData(id, name);
其中
- block id 是 block 的唯一標識,必須填寫。
- block name 是 block 的名稱,可以根據需要隨意填寫,一般建議填寫 block 的真實名稱以便於識別。
配置 target 使用的跟蹤器
跟蹤目標會被配置的跟蹤器加載並在正確定位到之後跟蹤。
在 Hierarchy 視圖中可以選擇 block 節點後選擇 session 中的 Mega Tracker。
![]()
在腳本中,可以修改 Tracker 以設置 block 的跟蹤器。
block.Tracker = megaTracker;
Tracker 可以在運行時隨時修改,加載/卸載會在 session 運行時發生。如果設置 Tracker 為 null,該 target 將會被從之前設置的跟蹤器中卸載。block 加載為虛擬過程,不會失敗。
附註
target 被跟蹤有幾個關鍵條件:
- MegaBlockController.Source 的 id 必須在 MonoBehaviour.Start() 前被正確配置。
- 該 Source 的 id 所對應的 block 必須在定位庫中存在。
- MegaBlockController.Tracker 必須被配置使用正確的定位庫。
跟蹤目標的生命週期
一個常見的跟蹤目標生命週期如下:
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 被設置為不使用跟蹤器之後。









