プロファイル
プロファイルには、Addressables ビルドスクリプトで使用される変数のセットが含まれます。これらの変数によって、ビルドのアーティファクトを保存する場所や、ランタイムでのデータのロード先などの情報が定義されます。カスタムプロファイル変数を追加して、独自のビルドスクリプトで使用することもできます。
プロファイルの値を編集したり、新しいプロファイルを作成したりするには、Profiles ウィンドウ (メニュー: Window > Asset Management > Addressables > Profiles) を開きます。
* デフォルトプロファイルが表示された Addressables Profiles ウィンドウ。*
開発プロセスのさまざまなフェーズやタスクのために、さまざまなプロファイルを設定できます。例えば、プロジェクトの開発時に使用するプロファイル、テストに使用するプロファイル、最終公開やリリースに使用するプロファイルをそれぞれ作成できます。事前にプロファイルを設定しておき、必要に応じてプロファイルを切り替える方が、別のフェーズに移動したり、別のタスクを実行したりするときに個別に値を編集するより、はるかにミスが発生しにくくなります。
プロファイルをアクティブなプロファイルとして設定したり、名前を変更したり、削除したりするには、プロファイル名を右クリックします。
Addressables では、デフォルトで 5 つのプロファイル変数が定義されています。
- Local: ローカルコンテンツ用に 2 つのパス変数が定義されています。
- Local.BuildPath: アプリケーションとともにローカルにインストールするアセットを含むファイルをビルドする場所です。デフォルトでは、このパスはプロジェクトの Library フォルダー内になります。
- Local.LoadPath: アプリケーションとともにローカルにインストールされるアセットをロードする場所です。デフォルトでは、このパスは StreamingAssets フォルダー内になります。Addressables では、プレイヤーのビルド時に、StreamingAssets 内のデフォルトの場所にビルドされたローカルコンテンツが自動的に含められます (他の場所にあるコンテンツは含められません)。
- Remote: リモートコンテンツ用に 2 つのパス変数が定義されています。
- Remote.BuildPath: リモート配布する予定のアセットを含むファイルをビルドする場所です。
- Remote.LoadPath: リモートコンテンツおよびカタログのダウンロード元の URL です。
- BuildTarget: Android や StandaloneWindows64 など、ビルドターゲットの名前です。
Local および Remote のパス変数には、以下の事前定義された Bundle Location (バンドルの場所) を選択できます。
- Built-In: ローカルコンテンツ用のパス定義です。ビルドシステムは、この設定でビルドされたコンテンツをプレイヤービルドに自動的に含めます。これらのパスの値は変更しないでください。
- Editor Hosted: エディターの [ホスティングサービス] で使用するパス定義です。ホスティングサービスの設定方法によっては、サービス URL と一致するようにロードパスを編集することが必要になる場合があります。
- Cloud Content Delivery: Unity Cloud Content Delivery (CCD) サービスのパス定義です。プロジェクト設定の Services セクションで Unity プロジェクト ID を作成する (または既存の ID にリンクする) 必要があります。また、CCD Management SDK パッケージのインストールも必要です。Cloud Content Delivey の Bundle Location オプションの設定と使用の詳細については、[Addressable Asset System と Cloud Content Delivery] を参照してください。
- Custom: ビルドパスおよびロードパスとして使用する値を編集できます。ビルド時とランタイムに Addressables によって評価されるプレースホルダーを使用した変数値の設定の詳細については、[プロファイル変数の構文] を参照してください。
Warning
ほとんどの場合、ローカルビルドパスやローカルロードパスのデフォルト値は変更するべきではありません。変更する場合は、プレイヤービルドを作成する前に、ローカルビルドのアーティファクトをカスタムのビルドの場所からプロジェクトの StreamingAssets フォルダーに手動でコピーする必要があります。これらのパスを変更すると、プレイヤービルドの一部として Addressables をビルドすることもできなくなります。
コンテンツビルド時の Addressables でのプロファイルの使用方法の詳細については、[ビルド] を参照してください。
Tip
複数のプロファイルの使用が最も役立つのは、アプリケーションのコンテンツをリモート配布する場合です。すべてのコンテンツをアプリケーションのインストールの一部として配布する場合は、単一のデフォルトプロファイルしか必要にならない可能性があります。
アクティブなプロファイルの設定
アクティブなプロファイルによって、ビルドスクリプトの実行時に使用される変数のセットが決まります。
アクティブなプロファイルを設定するには、以下を実行します。
- Groups ウィンドウ (メニュー: Window > Asset Management > Addressables > Groups) を開きます。
- ツールバーの Profile メニューをクリックします。
- アクティブにするプロファイルを選択します。
または、
- Profiles ウィンドウ (メニュー: Window > Asset Management > Addressables > Profiles) を開きます。
- プロファイルを右クリックしてコンテキストメニューを開きます。
- Set Active を選択します。
Note
ビルドスクリプトには、エディターを再生モードにしたときに Addressables から呼び出される [再生モードスクリプト] が含まれます。一部の再生モードスクリプトでは、アクティブなプロファイルの変数を使用してコンテンツの場所を特定します。詳細については、[再生モードスクリプト] を参照してください。
新しいプロファイルの追加
新しいプロファイルを作成するには、Create > Profile を選択します。新しいプロファイルの行が表に追加されます。
すべてのプロファイルは、すべての変数の値を定義する必要があります。新しいプロファイルを作成すると、現在選択されているプロファイルからすべての値がコピーされます。
新しい変数の追加
プロファイルには、2 種類の変数を追加できます。
- 1 つの値を定義する基本変数
- 2 つのパス値 (1 つはビルドパス、もう 1 つはロードパス) のセットを定義するパスペア
基本変数はパス値の構成要素として使用できます (この一例が BuildTarget です)。独自のビルドスクリプトで使用することもできます。パスペアは、Addressables [グループ] と [リモートカタログ] の Build & Local Paths を設定するために使用します。
新しいプロファイル変数を追加するには、Create メニューで Variable または Build Load Path Variable を選択します。入力を求められたら、新しい変数の名前と値を入力し、Save をクリックします。新しい変数がすべてのプロファイルに追加されます。
変数名を変更したり、変数を削除したりするには、変数名を右クリックします。
パスペア
パスのペアは、BuildPath
変数と LoadPath
変数の組み合わせを定義します。パスペアを作成したら、そのペア名を使用して、Addressable [グループ] またはリモートカタログの [パス設定] に 1 式として割り当てることができます。
パスペアを作成するには、Create > Build Load Path Variables を選択します。入力を求められたら、パスペアにプレフィックス名を付け、それぞれのフィールドにパス文字列を割り当てます。
新しいパスペア
新しいパスペアでは、Custom の Bundle Location 設定の初期値が使用されます。必要に応じて、別の Bundle Location に変更できます。
Tip
ビルドパスとロードパスの 2 つの標準変数は、Profile ウィンドウで名前を変更することでパスペアに "変換" できます。1 つを VariableName.BuildPath
、もう 1 つを VariableName.LoadPath
に設定してください。
2 つのパスペアを含む 2 つのプロファイルが表示された Addressables Profiles ウィンドウ。
デフォルトのパス値
ビルドパスとロードパスのデフォルト値は、次のとおりです。
- Local.BuildPath (ローカルビルドパス): `UnityEditor.EditorUserBuildSettings.activeBuildTarget
- Local.LoadPath (ローカルロードパス):
[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]
- Remote.BuildPath (リモートビルドパス):
ServerData/[BuildTarget]
- Remote.LoadPath (リモートロードパス):
http://localhost/[BuildTarget]
ほとんどの場合、ローカスパス値を変更するべきではありません。Unity ビルドシステムでは、AssetBundle とその他のファイルが、デフォルトの場所にあることを想定しています。ローカルパスを変更した場合は、プレイヤービルドを作成する前に、ビルドパスからロードパスにファイルをコピーする必要があります。ロードパスは常に Unity の StreamingAssets フォルダー内にある必要があります。
コンテンツをリモート配布する場合は、リモートコンテンツをホスティングしている場所の URL を反映するようにリモートロードパスを変更する必要があります。リモートビルドパスは、ビルドシステムがデフォルト値に依存していないため、任意の便利な場所に設定できます。
プロファイル変数の構文
すべての変数は、"string" 型です。固定パスや固定値を入力できます。以下の 2 つの構文指定を使用して、静的プロパティや他の変数から、変数の値の全体または一部を取得することもできます。
- 角かっこ [ ]: 角かっこで囲まれたエントリーは、ビルド時に Addressables によって評価されます。エントリーは、他のプロファイル変数 ([BuildTarget] など) またはコード変数 (UnityEditor.EditorUserBuildSettings.activeBuildTarget など) にすることができます。ビルド中にグループが処理されるに従って、Addressables によって角かっこ内の文字列が評価され、結果がカタログに書き込まれます。
- 波かっこ { }: 波かっこで囲まれたエントリーは、ランタイムに Addressables によって評価されます。ランタイムクラスのコード変数 ({UnityEngine.AddressableAssets.Addressables.RuntimePath} など) を使用できます。
静的なフィールドとプロパティを、角かっこと波かっこで囲んで使用できます。名前は完全修飾名にする必要があり、型はコンテキストで有効であることが必要です。例えば、UnityEditor 名前空間のクラスはランタイムには使用できません。
デフォルトのプロファイル変数設定で使用されるコード変数は、次のとおりです。
- UnityEditor.EditorUserBuildSettings.activeBuildTarget
- UnityEngine.AddressableAssets.Addressables.BuildPath
- UnityEngine.AddressableAssets.Addressables.RuntimePath
例えば、 {MyNamespace.MyClass.MyURL}/content/[BuildTarget]
というロードパスが、"trees.bundle" という AssetBundle を作成するグループに設定されているとします。ビルド時には、[BuildTarget]
が "Android" として評価され、AssetBundle 名がパスに追加されるため、{MyNamespace.MyClass.MyURL}/content/Android/trees.bundle
がバンドルのロードパスとしてカタログに登録されます。ランタイムには、カタログが処理されるときに Addressables システムで {MyNamespace.MyClass.MyURL}
が評価され、最終ロードパス http://myinternet.com/content/Android/trees.bundle
が作成されます。
Note
プロファイル文字列に含まれているランタイム変数を参照しても、Unity のビルド最適化フェーズで、その変数がアプリケーションのランタイムライブラリからストリッピングされるのを防ぐことはできません (同じ変数がコード内で参照されていない場合)。クラスまたはメンバーのストリッピングを防ぐ方法の詳細については、[マネージコードのストリッピング] を参照してください。
パックパスとロードパスの指定
必要な変数をプロファイルに設定したら、そこで指定された変数に基づいて、アセットグループのビルドパスとロードパスを選択できます。
ビルドパスとロードパスを設定するには、以下を実行します。
- Project ウィンドウで Addressable アセットグループを選択します。
- グループの Inspector の Content Packing & Loading > Build and Load Paths の下で、目的のパスペアを選択します。
<custom>
オプションを選択した場合は、ビルドパスとロードパスを別々に指定できます。
パスを直接入力するのではなく、以前に Profiles ウィンドウで定義したパスを表す変数を選択することに注意してください。Path Preview には、アクティブなプロファイルに基づく現在のパスが表示されます。グループ設定のインスペクターでパスを直接編集するには、Build & Load Paths を <custom>
に設定し、Build Path または Load Path も個別に <custom>
に設定します。編集後のパスは、そのグループのみに適用されます。
プロファイルの例
ここでは、コンテンツのローカル開発フェーズを示す以下の例について考えます。
開発用にローカルに保存された、ローカルバンドルとリモートバンドルを含むコンテンツ。
開発中には、以下のように、ローカルバンドルとリモートバンドルの両方でローカルパスを使用します。
ローカル開発用に設定されたパス。
この場合、ローカルパスとリモートパスが実際はローカルであるため、ローカル開発用にリモートサーバーを設定する必要はありません。
コンテンツが本番環境に移行できる状態になったら、次の図のように、リモートバンドルをサーバーに移動します。
* 本番環境としてサーバーに移動されたリモートバンドルを含むコンテンツ。*
この場合、プロファイルを使用して、"Production" のリモートロードパスをそのサーバーに変更することができます。アセットグループを変更することなく、すべてのリモートバンドルが実際にリモートになるように変更できます。
リモートコンテンツをホストするように設定されたパス
Important
- Addressables システムは、プレイヤービルド時に Addressables.BuildPath から StreamingAssets フォルダーにデータをコピーするだけです。LocalBuildPath または LocalLoadPath 変数で指定された任意のパスの処理は行いません。別の場所にデータをビルドする場合、またはデフォルト以外の別の場所からデータをロードする場合は、データを手動でコピーする必要があります。
- 同様に、リモートの AssetBundle および関連付けられているカタログとハッシュファイルは、手動でサーバーにアップロードして、RemoteLoadPath によって定義される URL でアクセスできるようにする必要があります。