【Unity】Addressable Asset Systemのアセットをサーバに配置してみた。

08/24/2018

まえおき

前回の記事では、FireBaseStoregeに置くことを目標にしていましたが、よく考えると多くコストがかかります。
海外での低レンテシーは重要なのですが・・・まぁ最初からお金かけてもねぇ。と言ったことで、FireBaseはユーザ管理とSaveデータ保管を対象に考えることにして 今回はサーバに配置することにしました。

Addressable Asset Systemのアセットをサーバに配置してみた

サーバの選定

今回は自分が借りているサーバに置いてみました。このサイトがあるサーバですが普通のレンタルサーバです。


スタンダードプランです。
Ping値5msと国内で考えてる標準的な値。サーバ自体の性能は、まぁアレです値段相応ww

今回は選定済みなのでよく考えてませんが選定基準?があると思います。考えてみましょう。
 Assetには、httpにてアクセスするようです。
 Assets圧縮されてます。
 httpにレスポンスするだけでサーバ側では重たい処理はない。
 
てことを考えると、何でもいいと思います。容量も多くても、数百MB程度だと思うし。
通常のアプリならば、AddressableAssetsの圧縮でiosの制限以内の容量に収まると思うので、サーバ配信にする必要がありません。

でも外からコンテンツの内容を替えられるのはうれしいと思う。なので、自分のような人はサーバ配信するコンテンツとLocalに配置するコンテンツの組合わせが正解だと思います。
使い方としては、お知らせのテキストの内容など。やっぱりいつでも変更できると良いですね。またまたアイテムを配布する。などなどできますね。
ソース変更不要で使い分けができるのも、AddressableAssetsのCoolなところだと思います。

話を戻しますが、何でも良いと書きましたが、できれば・・・
・バックアップ/リストアが簡単にできる。
・低レンテシー
・SSD
・ハード壊れても復旧のサポートがよいこと

最後の点は、なかなかわからないと思いますが・・・さくらインターネットは以前お仕事でお世話になったのですが、しっかりとした体制と技術でした。もう、かなり前ですがねw

AddressableAssetsの置き方

まずは、Unityで作業。

ここを選択して、ManageProfilesを選択します。

RimoteBuildpath が、Assetが作成される場所です。Unityプロジェクト直下に作成されています。

RemoteLoadPrefix が、サーバのアドレスです。

入力したら、Addressableのwindowに戻ります。
BuildPathとLoadPrefixをLocalから下記のように切り替えます。

サーバ側にAddressableAssetを配置します。
Ftp等で必ずバイナリ形式で送りましょう。

配置後、確認するならwebブラウザでXXXX.jsonにアクセスしてみてください。表示されれば、たぶん問題ありません。
あー アクセス権の設定は注意してください。安易に実行権と書込みを付けないのが基本です。
あと、大事なこと。Assetに個人情報など漏洩してはいけない重要なデータは入れないこと。圧縮されてますので平文ではありませんが、戻すとたぶん・・・
これを回避するために、ConvertGroupTypeをAdvancePackedContentしてゴニョゴニョすると、実行中にUrlを渡せるぽいので正式リリース待ちかもしれません。
と言っても、漏洩しちゃいけにようなデータは絶対入れないので自分は、RemotePackedContentで十分ですなw

動作確認です。

PlayModeをPackedにし、実行してみてください。動けば完了です。
Vatualは、仮想動作のため実際にサーバにアクセスしません。
現時点では、Packedはモニターが動かないです。モニター見たいときは、Vatualでみましょう。

あー さらっと書いてましたが、グループは、ConvertGroupTypeをRemotePackedContentで作成する必要があります。

さいごに

まだ正式にリリースされてませんので、機能や使い方が変わる可能性があります。また、手探りで試していますので、間違いなどあると思います。指摘事項がありましたら、Twitterなどでお知らせください。訂正いたします。

スポンサーリンク