Closed12

unityroomでAddressableに対応する

むじむじ

〜前回までのあらすじ〜

  • Addressable導入後はじめてビルドする -> エラー
    • Addressableは本体とは別で、Addressableアセットのビルドが必要 -> ローカルでは動くようになる
    • WebGLの場合、AddressableアセットはStreamingAssetsに配置されるのでunityroomでは外部サーバに置く必要があると判明
  • とりあえずCloud Content Deliveryを試す -> エラー
    • Addressableの設定で本番ビルドではリモートを参照するように設定したが、設定がloader.jsに行き渡ってない -> WebGLテンプレートを作ってみるもののloader.jsには影響してくれなかった。。ので自分で書き換えないとダメそう
    • CCDのSDKを入れるとアセットをビルド&アップロードまでしてくれるが、ビルド設定がWebGLなのになぜかスタンドアロン版用ではと思われるファイルしか上げてくれない
  • さくらのレンタルサーバで試す -> エラー
    • CORS(それはそう)
むじむじ

CORS問題はGithub Pages利用で解決できそうと判明。
ただCORSヘッダーは自動付与かつ全ドメイン許可なのと
商用利用不可だったりと、やや懸念もある。

と思って他の静的ホスティングサービスを探してみた感じ
CloudFlare Pagesがかなり良さそうだった。
ちょうど最近ヘッダー設定も可能になったのもgood

むじむじ

あとはloader.jsのパス設定がどういう流れで決まってるかを調べる。

むじむじ

loader.jsのstreamingAssetsUrlはどうも単にデフォルトの定義っぽくて
変えたいときはindex.htmlのテンプレートを作ってアップロード先のサーバー構成に合わせて上書きしなさいよね的なことっぽい。
https://docs.unity3d.com/ja/2020.3/Manual/webgl-templates.html

ただunityroomの仕様上index.htmlはアップロードしないので
loader.jsのほうを直接リネームする必要がある模様。

むじむじ

幸いloader.jsの中には"StreamingAssets"なる文字列は一回しか出てこないので
ビルド後にここを自動で書き換えるスクリプトを用意することにする
Unity外でやってもよいけどUnityのPostProcessでいけそうな雰囲気
https://qiita.com/edo_m18/items/346439f7678218e85e69

むじむじ

Cloudflare Pages、まだ出たばかりで情報少なめなのと、機能が豊富すぎて逆に険しさがあった...
Github Pagesにするやも。

このスクラップは2022/06/02にクローズされました