【Unity】Addressableのローカルサーバーを使って、AssetBundleをダウンロードする動作を確認する
今回はAddressableのホスティングサービスを試します。
本記事は Addressable Asset System ver 0.6.7 preview を使用しました。
動作確認にサーバーを用意するのが面倒くさい
Addressable(Addressable Asset System)は概ね外部リソースと内部リソースの区分無く使えるシステムです。またAssetBundleを構築せず動作を確認出来るという点で非常に手軽に変更を確認出来ます。
とはいえ、AssetBundleを実際にビルドしないと何らかの不具合を確認出来ない事もあります。また、外部リソースにはダウンロードという手順が必ず存在するため、そういった部分の確認にも出来ればアセットを配置するサーバーを立てて実際に確認したい所です。
なので、ローカル環境にサーバーを立てて動作を確認するホスティングサービスの機能を使ってみます。ファイルはサーバー上に配置し、Addressable経由でファイルをダウンロード、使用するという感じにする訳です。
手順1:動作確認
Addressableの最低限のセットアップ(パッケージのインポート及び初期アセットの登録的なもの)はスキップします。
強いて言うならグループの出力先はリモートに設定しておきます。

さて、最初にやるべきは動作確認です。Packは最も厳密な動作なので事前に Virtual Mode で動作を確認し、スクリプト的にちゃんと動作することを確認します。今回はキャラクターを1体表示するだけの機能を試してみました。実行すると、ユニティちゃんのPrefabが表示されます。
これで正常に動作するならばスクリプト的には概ね問題はなく、問題があれば設定やAddressable側の問題になります。


手順2:ホスティングサービスの起動
ホスティングサービスを起動します。
Hostingボタンを押すAdd Serviceボタンを押した後、Addボタンを押してサービスを登録Enable Serviceボタンを押してサービスを起動
これでファイルサービスが起動します。



手順3:AddressableのRemote接続先を設定
Addressableの接続先を変更します。つまりホスティングサービスに接続するようにします。
Inspector Prifile Settingsを開くProfile To Editの内容を変更する+ボタンを押し、プロファイル名を変更RemoteLoadPathを変更。例えばhttp://[PrivateIpAddress_3]:[HostingServicePort]のような感じに
GeneralのRebuild Remote Catalogにチェックを入れ、Remote Catalog Build PathとRemote Catalog Load PathをRemote Build PathとRemote Load Pathへ変更GeneralのPlayer Version Overrideに適当な値を設定。例えば00001等。 この設定をするとCatalog名が固定されます
これで接続先の設定が出来ました。



初期設定では[BuildTarget]が入ってるしServerDataフォルダにはプラットフォームのフォルダがあるので必要かと思いますが、実際には不要です。
手順4:Addressableの接続先変更~ビルドまで
Addressableの接続先を変更して、ソコ向けにビルドします。
Profile : Defaultを、先程作成したプロファイルに変更する(自分の場合はMy Profile)Play Mode ScriptをPacked Play Modeに変更Build>Build Player Contentを実行
プロファイルは設定を書き換える度にビルドする必要があります。

手順5:実際に動かしてみる
実際に動かしてみます。これでちゃんと動作するなら問題無しです。
もし404が出たら、手順2に戻ってホスティングサービスをEnable Serviceの隣にある Removeボタンで一旦削除し、やり直すと治ることがあります。

ビルドしてみる
あとは実際にビルドしてみます。ホスティングで指定したURLによっては普通にアクセス出来ます。
またCatalog名を固定して生成しているので、Unityエディター側でアクセスするAssetBndleの中身を差し替えるとリソースを差し替えられます。
感想
本格的になると外部サービスになるかもですが、動作確認ならコレでもまぁ十分かなと。
関連
マニュアル docs.unity3d.com
外部のサーバーに配置する場合 section31.jp
Addressableの概要 qiita.com
本当は今回でAddressable 1.0になハズだったんですけどね
