【Unity】Addressable Asset Systemのアセットをサーバに配置してみた。
まえおき
前回の記事では、FireBaseStoregeに置くことを目標にしていましたが、よく考えると多くコストがかかります。
海外での低レンテシーは重要なのですが・・・まぁ最初からお金かけてもねぇ。と言ったことで、FireBaseはユーザ管理とSaveデータ保管を対象に考えることにして 今回はサーバに配置することにしました。
Addressable Asset Systemのアセットをサーバに配置してみた
サーバの選定
今回は自分が借りているサーバに置いてみました。このサイトがあるサーバですが普通のレンタルサーバです。
スタンダードプランです。
Ping値5msと国内で考えてる標準的な値。サーバ自体の性能は、まぁアレです値段相応ww
今回は選定済みなのでよく考えてませんが選定基準?があると思います。考えてみましょう。
Assetには、httpにてアクセスするようです。
Assets圧縮されてます。
httpにレスポンスするだけでサーバ側では重たい処理はない。
てことを考えると、何でもいいと思います。容量も多くても、数百MB程度だと思うし。
通常のアプリならば、AddressableAssetsの圧縮でiosの制限以内の容量に収まると思うので、サーバ配信にする必要がありません。
でも外からコンテンツの内容を替えられるのはうれしいと思う。なので、自分のような人はサーバ配信するコンテンツとLocalに配置するコンテンツの組合わせが正解だと思います。
使い方としては、お知らせのテキストの内容など。やっぱりいつでも変更できると良いですね。またまたアイテムを配布する。などなどできますね。
ソース変更不要で使い分けができるのも、AddressableAssetsのCoolなところだと思います。
話を戻しますが、何でも良いと書きましたが、できれば・・・
・バックアップ/リストアが簡単にできる。
・低レンテシー
・SSD
・ハード壊れても復旧のサポートがよいこと
最後の点は、なかなかわからないと思いますが・・・さくらインターネットは以前お仕事でお世話になったのですが、しっかりとした体制と技術でした。もう、かなり前ですがねw
AddressableAssetsの置き方
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などでお知らせください。訂正いたします。