テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】Addressableのローカルサーバーを使って、AssetBundleをダウンロードする動作を確認する

今回はAddressableのホスティングサービスを試します。

本記事は Addressable Asset System ver 0.6.7 preview を使用しました。

動作確認にサーバーを用意するのが面倒くさい

Addressable(Addressable Asset System)は概ね外部リソースと内部リソースの区分無く使えるシステムです。またAssetBundleを構築せず動作を確認出来るという点で非常に手軽に変更を確認出来ます。

とはいえ、AssetBundleを実際にビルドしないと何らかの不具合を確認出来ない事もあります。また、外部リソースにはダウンロードという手順が必ず存在するため、そういった部分の確認にも出来ればアセットを配置するサーバーを立てて実際に確認したい所です。

なので、ローカル環境にサーバーを立てて動作を確認するホスティングサービスの機能を使ってみます。ファイルはサーバー上に配置し、Addressable経由でファイルをダウンロード、使用するという感じにする訳です。

手順1:動作確認

Addressableの最低限のセットアップ(パッケージのインポート及び初期アセットの登録的なもの)はスキップします。

強いて言うならグループの出力先はリモートに設定しておきます。

f:id:tsubaki_t1:20190313114024j:plain

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

これで正常に動作するならばスクリプト的には概ね問題はなく、問題があれば設定やAddressable側の問題になります。

f:id:tsubaki_t1:20190312231850j:plain
Virtual Modeで動作を確認

f:id:tsubaki_t1:20190312232338g:plain
Virtual Modeで正常に動作するなら、スクリプト的には概ね問題はない

手順2:ホスティングサービスの起動

ホスティングサービスを起動します。

  1. Hostingボタンを押す
  2. Add Serviceボタンを押した後、 Addボタンを押してサービスを登録
  3. Enable Serviceボタンを押してサービスを起動

これでファイルサービスが起動します。

f:id:tsubaki_t1:20190312232805j:plain

f:id:tsubaki_t1:20190312233010j:plain

f:id:tsubaki_t1:20190312233019j:plain

手順3:AddressableのRemote接続先を設定

Addressableの接続先を変更します。つまりホスティングサービスに接続するようにします。

  1. Inspector Prifile Settingsを開く
  2. Profile To Editの内容を変更する
    1. + ボタンを押し、プロファイル名を変更
    2. RemoteLoadPathを変更。例えば http://[PrivateIpAddress_3]:[HostingServicePort]のような感じに
  3. GeneralRebuild Remote Catalogにチェックを入れ、Remote Catalog Build PathRemote Catalog Load PathRemote Build PathRemote Load Pathへ変更
  4. GeneralPlayer Version Overrideに適当な値を設定。例えば 00001 等。 この設定をするとCatalog名が固定されます

これで接続先の設定が出来ました。

f:id:tsubaki_t1:20190312233842j:plain

f:id:tsubaki_t1:20190312233709g:plain
RemoteLoadPath接続先を設定

f:id:tsubaki_t1:20190312234638j:plain

初期設定では[BuildTarget]が入ってるしServerDataフォルダにはプラットフォームのフォルダがあるので必要かと思いますが、実際には不要です。

手順4:Addressableの接続先変更~ビルドまで

Addressableの接続先を変更して、ソコ向けにビルドします。

  1. Profile : Defaultを、先程作成したプロファイルに変更する(自分の場合はMy Profile
  2. Play Mode ScriptPacked Play Modeに変更
  3. Build>Build Player Contentを実行

プロファイルは設定を書き換える度にビルドする必要があります。

f:id:tsubaki_t1:20190312235201g:plain
プロファイルの切り替えからビルドまで

手順5:実際に動かしてみる

実際に動かしてみます。これでちゃんと動作するなら問題無しです。

もし404が出たら、手順2に戻ってホスティングサービスをEnable Serviceの隣にある Removeボタンで一旦削除し、やり直すと治ることがあります。

f:id:tsubaki_t1:20190312235619j:plain

ビルドしてみる

あとは実際にビルドしてみます。ホスティングで指定したURLによっては普通にアクセス出来ます。

またCatalog名を固定して生成しているので、Unityエディター側でアクセスするAssetBndleの中身を差し替えるとリソースを差し替えられます。

https://user-images.githubusercontent.com/1644563/54213423-b8530380-4527-11e9-9d0c-f3466a4288eb.gif

感想

本格的になると外部サービスになるかもですが、動作確認ならコレでもまぁ十分かなと。

関連

マニュアル docs.unity3d.com

外部のサーバーに配置する場合 section31.jp

Addressableの概要 qiita.com

本当は今回でAddressable 1.0になハズだったんですけどね

https://forum.unity.com/threads/release-announcements-and-notes.543537/