アセットホスティングサービス
概要
ホスティングサービスは、Addressable アセットの設定データを使用して、Unity エディター内からローカルのアプリケーションビルドまたはネットワークに接続されたアプリケーションビルドに、パックされたコンテンツを提供する統合機能です。ホスティングサービスにより、パックされたコンテンツのテスト時のイテレーション速度を向上させることができます。また、ローカルネットワークとリモートネットワーク上の接続済みクライアントにコンテンツを提供することもできます。
パックモードのテストとイテレーション
エディターの再生モードテストから、プラットフォームのアプリケーションビルドのテストへの移動は、複雑であると同時に、開発プロセスの時間的コストを増加させます。ホスティングサービスは、Addressables グループ設定に直接マップされる、エディターに埋め込まれた拡張コンテンツ配信サービスを提供します。カスタム Addressables プロファイルを使用して、すべてのコンテンツを Unity エディター自体からロードするようにアプリケーションを設定できます。これには、モバイルデバイスや、開発システムにアクセス可能なネットワークを持つその他のあらゆるプラットフォームに展開されたビルドが含まれます。
設定
ここでは、プロジェクトのアセットホスティングサービスの初期設定について詳しく説明します。設定ガイドではエディターのワークフローに焦点を当てていますが、API を使用してホスティングサービスを設定することもできます。その場合は、AddressableAssetSettings クラスの HostingServicesManager プロパティを設定します。
新しいホスティングサービスの設定
新しいホスティングサービスの追加、設定、有効化を行うには、Hosting ウィンドウ を使用します。エディターで、Window > Asset Management > Addressables > Hosting を選択するか、Addressables Groups ウィンドウのメニューから Tools > Window > Hosting Services ボタンをクリックして、Addressables Hosting ウィンドウにアクセスします。
Addressables Hosting ウィンドウ。
新しいローカルホスティングサービスを追加するには、Create > Local Hosting ボタンをクリックします。
新しいホスティングサービスの追加。
ノート: 各タイプのカスタムホスティングサービスの実装の詳細については、[カスタムサービス] に関するセクションを参照してください。
新しく追加されたサービスが、Addressables Hosting ウィンドウの Hosting Services セクションに表示されます。サービスの名前を入力するには、Service Name フィールドを使用します。
新しいサービスは、デフォルトで、無効にされた状態になっています。サービスを開始するには、Enable チェックボックスをオンにします。
サービスを追加した後の更新された Addressables Hosting ウィンドウ。
HTTP ホスティングサービスによって、開始時に自動的にポート番号が割り当てられます。ポート番号は保存され、Unity セッション間で再び使用されます。別のポートを選択するには、Port フィールドに特定のポート番号を割り当てます。または、Reset ボタンをクリックすると、別のポート番号がランダムに割り当てられます。
バージョン 2022.1 以降のエディターでは、デフォルトで HTTP ダウンロードが禁止されています。 デフォルトの HTTPHostingService
を正しく機能させるには、Edit > Project Settings... > Player > Other Settings > Allow downloads over HTTP で、Allow downloads over HTTP 設定を Not allowed 以外の値に設定します。
Warning
ポート番号をリセットした場合は、適切な URL を生成して埋め込むために、フルアプリケーションビルドを実行する必要があります。
Note
モバイルデバイスやその他のデバイスからの接続を許可するには、ローカルのファイアウォールを無効にするか、例外を追加する必要がある場合があります。
これで、HTTP ホスティングサービスが有効になり、各アセットグループのリモート BuildPath で指定されたディレクトリからコンテンツを提供できるようになりました。
ホスティングサービスのプロファイルの設定
開発中にホスティングサービスを使用する場合は、プロファイルを作成して、アセットグループをホスティングサービスからロードするように設定することを検討してください。プロファイルの詳細については、[Addressable アセットのプロファイル] を参照してください。
Addressables Profiles ウィンドウを開き、Create > Profile を使用して新しいプロファイルを作成します。以下の例では、新しいプロファイルは "Editor Hosted" という名前になっています。
ホスティングサービスからロードするように、リモートロード URL を変更します。Addressables Hosting ウィンドウから、リモート LoadPath 変数で [PrivateIpAddress]
および [HostingServicePort]
という名前のフィールドを使用して、パス URL を作成します (例えば、http://[PrivateIpAddress]:[HostingServicePort]
のように指定します)。
サービスのプロファイルの設定。
各グループが正しく設定されていることを確認します。BuildPath および LoadPath パスは必ず、ホスティングサービスで使用するように変更したそれぞれのプロファイルキーに設定します。以下の例では、LoadPath のプロファイル変数が展開され、ホスティングサービスからアセットをロードするための適切なベース URL が作成されています。
サービスのロードパスの検査。
Tip
プロファイル変数が解決されて、正しい変数が得られることを確認するには、Path Preview を使用します。ロードパス URL の IP アドレスとポートは、Addressables Hosting ウィンドウでサービスに対して表示されたものと一致する必要があります。
最後に、Addressables Groups ウィンドウで新しいプロファイルを選択し、ビルドを作成して、ターゲットデバイスに展開します。これで Unity エディターは、アプリケーションからのすべてのロードリクエストを、HttpHostingService サービスを介して処理するようになります。コンテンツの追加や変更を行っても再展開する必要はありません。Addressable コンテンツを再ビルドし、すでに展開したアプリケーションを再起動すると、コンテンツが最新情報に更新されます。
ホスティングサービスのプロファイルの選択。
バッチモード
ホスティングサービスを使用して、バッチモードで実行中の Unity エディターからコンテンツを提供することもできます。これを行うには、コマンドラインから以下のオプションとともに Unity を起動します。
-batchMode -executeMethod UnityEditor.AddressableAssets.HostingServicesManager.BatchMode
これにより、ホスティングサービスの設定がデフォルトの AddressableAssetSettings オブジェクトからロードされ、設定されたすべてのサービスが開始されます。
別の AddressableAssetSettings 設定を使用するには、独自の静的メソッドエントリーポイントを作成し、HostingServicesManager.BatchMode(AddressableAssetSettings settings) オーバーロードを介して呼び出します。
カスタムサービス
カスタムサービスを作成すると、Addressable Asset System からのコンテンツロードリクエストを処理する独自のロジックを実装できます。以下に例を示します。
- HTTP 以外のプロトコルを使用してコンテンツをダウンロードするカスタム IResourceProvider をサポートします。
- 本番 CDN ソリューション (Apache HTTP Server など) に適合するコンテンツを提供する外部プロセスを管理します。
カスタムサービスの実装
HostingServicesManager は、IHostingService インターフェースを実装する任意のクラスを管理できます (メソッドパラメーターと戻り値の詳細については、[API ドキュメント] を参照してください)。
新しいカスタムサービスを作成するには、以下を実行します。
- 上記の [新しいホスティングサービスの設定] セクションに記載されたステップに従います。ただし、Create > Local Hosting ボタンを選択する代わりに Create > Custom Service ボタンを選択します。
- アプリケーションスクリプトを、そのフィールドにドラッグするか、オブジェクトピッカーから選択します。ダイアログにより、選択したスクリプトが IHostingService インターフェースを実装していることが検証されます。
- サービスの追加を終了するには、Add ボタンをクリックします。
これ以降は、作成したカスタムサービスが Service Type ドロップダウンリストに表示されます。
カスタムのアセットホスティングサービスの追加。