メインコンテンツまでスキップ

マップコンテンツをインポートする

このチュートリアルでは、アプリに紐づけられたマップのコンテンツをダウンロードし、Unityプロジェクトにインポートする方法についてご案内します。まず、このガイドを読む前に、前回のマップコンテンツの配置に沿って進んでいることを確認してください。

マップコンテンツをダウンロードする

Unityエディタから、Pretia > Map Download を選択することでダウンロードすることができます。Map Download ウィンドウが表示され、Reload groups ボタンを押すと、アプリケーション内で使用されているすべてのマップが、マップグループごとに表示されます。Download Map Contents ボタンを押すと、このアプリケーションで使用するマップの内容をダウンロードすることができます。

同じマップでも異なる App Key に紐付けることで、異なるマップ コンテンツを持つことができます。

マップコンテンツをダウンロードすると、このパスに新しいディレクトリが作成されます。 Assets/Pretia/MapGroups/{mapGroupName}/{mapName}/MapContents.

このディレクトリの中には、マップの内容を表現した json ファイルと、この json ファイルから生成されたプレハブが格納されています。このprefabを階層にドラッグすることができます。

Unityエディタではこのように表示されます。生成されたprefab内の各オブジェクトには、SDKが識別しやすくするための MapContentComponent が含まれています。これらを変更しないように注意してください。

万が一、これらの値を誤って変更してしまった場合は、json ファイルを右クリックし、Create > Pretia ArCloud > Prefab from Map Contents を選択すれば、いつでもprefabを再生成することができます。

ワークフロー

この時点で、マップコンテンツから生成されたオブジェクトにカスタムスクリプトを追加することができますが、直接追加するのではなく、生成されたprefabの Prefab Variant を作成することをお勧めします。

その理由は、アプリの開発ライフサイクルを通じて、マップコンテンツが更新される可能性が高いからです。新しい地図コンテンツがインポートされると、prefabが再生成されます。進捗の損失を防ぐため、生成されたprefabはそのままにしておき、カスタムスクリプトをプレハブバリアントに追加することをおすすめします。

プレハブバリアント内のオブジェクトのトランスフォームを変更しない限り、マップコンテンツが更新されるたびに正しく更新されます。

ヒント:プレハブバリアントは、階層からプロジェクトタブにドラッグして作成することをお勧めします。右クリックしてCreate > Prefab Variant を選択して作成すると、ルートオブジェクトのトランスフォームがリセットされるようで、これは好ましくありません。

マップコンテンツを使う

マップコンテンツをシーンに配置した状態でアプリを構築し、マップベースのリローカライズでマップコンテンツの配置が正確かどうかを検証します。