マップコンテンツをインポートする
このチュートリアルでは、アプリに紐づけられたマップのコンテンツをダウンロードし、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
を選択して作成すると、ルートオブジェクトのトランスフォームがリセットされるようで、これは好ましくありません。
マップコンテンツを使う
マップコンテンツをシーンに配置した状態でアプリを構築し、マップベースのリローカライズでマップコンテンツの配置が正確かどうかを検証します。