Mega Go トラッキングターゲットを追加する
この記事では、Mega Go のトラッキングターゲットを追加して設定する方法を紹介します。
開始する前に
- 自分の localization 機能は使用できますか? を確認し、正しい map がダウンロード済みであることを確認します。
- EasyAR plugin の最新バージョンをインポートし、Mega Go 機能を有効にする
- Unity AR のトラッキングターゲット の基本概念と使用方法を理解します
注記
以下の内容および tools は、EasyAR Mega Go を使用して Unity アプリケーションを開発する場合にのみ適用されます。plugin バージョン >= 4003.1 が必要です。
Mega Go は mini program 開発をサポートしていません。
この記事の内容には、プロジェクトに次の Unity パッケージがすでにインポートされている必要があります。
com.easyar.sense
Mega Go のトラッキングターゲット
Mega Go のトラッキングターゲットは、MegaGoBlockController コンポーネントを含む empty object です。Unity では 1 つの block を表します。

注記
com.easyar.mega パッケージがインポートされていない場合、block のエディター機能は使用できませんが、runtime のトラッキング効果と機能には影響しません。
トラッキングターゲットを作成する
Hierarchy ビューの空白部分を右クリックし、メニュー EasyAR Sense > Mega > Target : Mega Go Block から Mega のトラッキングターゲットを作成できます。

script では、ARSessionFactory.CreateController を使用して作成できます。
ARSessionFactory.CreateController<MegaGoBlockController>();
トラッキングターゲットを設定する
target を使用する前に、そのデータソースと tracker を設定する必要があります。
target データソースを設定する
トラッキングターゲットは、ソースが正しく設定された後でのみ認識およびトラッキングできます。
Hierarchy ビューで block ノードを選択し、block の Path Type と Path を入力します。

script では、コンポーネントの 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 パスを使用することをお勧めします。正式リリース時は絶対パスを使用し、resource package などの方法でアプリケーションがアクセス可能なファイルシステムパスに emg ファイルを配置してください。
target が使用する tracker を設定する
トラッキングターゲットは、設定された tracker によってロードされ、トラッキングされます。
重要
Mega Go の tracker は同時に 1 つの block しかトラッキングできません。同じ tracker に複数の block が同時に設定されている場合、最後にロードされた block だけが使用されます。
Hierarchy ビューで block ノードを選択し、session 内の Mega Go Tracker を選択します。
![]()
script では、Tracker を変更して block の tracker を設定できます。
block.Tracker = megaGoTracker;
Tracker は runtime 中いつでも変更でき、session の実行中にロード/アンロードが発生します。Tracker を null に設定すると、この target は以前設定されていた tracker からアンロードされます。
注記
target がトラッキングされるには、いくつかの重要な条件があります:
- Source に対応する block が使用可能な状態である必要があります(正式データは常に offline で使用可能で、テストデータは service にそのデータが存在する場合にのみ使用可能です)。
- MegaGoBlockController.Source のファイルが正しくロードされている必要があります。
- ファイルのロード後、他の block に対応するファイルがロードされていない必要があります。
トラッキングターゲットのライフサイクル
一般的なトラッキングターゲットのライフサイクルは次のとおりです。
flowchart LR
sstart((session 開始))
sstop([session 停止])
start("Target.Start")
load("ロード")
tracking[["継続トラッキング"]]
sstart --> load --> tracking --> sstop
start -. "Target.Tracker = tracker" .-> load
プロセスはおおよそ次の段階に分けられます:
- ロード: トラッキングターゲットは設定された tracker によってロードされます。これは target 自身の Start() および session の開始後に発生します。
- トラッキング処理: トラッキングターゲットが localization された後、tracker は target がアンロードされるか別の target がロードされるまで、target の位置と状態を継続的にトラッキングします。
- アンロード: トラッキングターゲットが tracker からアンロードされ、tracker は target をトラッキングしなくなります。これは session の停止時、または target が tracker を使用しないように設定された後に発生します。
