UnityのWebGLビルドにおける、ローカルでのチェックや状況に応じて出てしまうエラー対応方法のメモです。(Unity Version: Unity2021.3.15f1)
UnityのWebGL出力ファイルについて
UnityでWebGLプラットフォームを選択してビルドすると、以下のようなファイル群が出力されます。
しかしindex.htmlを単純にファイルブラウザから起動しても再生はできません。ローカルのWebサーバを立ち上げる必要があります。
順当な方法
一番簡単な方法はUnityエディタ上からBuild And Runをクリックすることです。これでビルドと同時にローカルのWebサーバーをUnity側で立ててくれます。ただし、この方法だとUnityを起動していないと確認できない点がネックです。
他のWebサーバーでの確認
ローカルでWebサーバーを立てる方法はいくつかあります。例えばビルド先のフォルダに移動後、以下のようなコマンドを実行することでもできます。こちらはお手軽なので、自分は他の用途でもよく使います。
$ python3 -m http.server 8000
# Webブラウザからhttp://localhost:8000にアクセス可能
しかし、UnityのWebGLビルドにおいては、上記のコマンドでのWebサーバーでアクセスすると以下のようなエラーがでてしまいます。
Unable to parse Build/test.framework.js.br!
If using custom web server, verify that web server is sending .br files with HTTP Response Header "Content-Encoding: br". Brotli compression may not be supported over HTTP connections. Migrate your server to use HTTPS.
これは、立ち上げたWebサーバーがBrotliという圧縮形式での送信にうまく対応できていないためのようです。
このような場合は、以下のPlayer Settings→WebGLタブ→Publishing Settings→Compression Formatの項目をGzipもしくはDisabledにすると解消できます。
本質的な対応でないですが、簡易的なローカルでの確認や、何らかの理由で上記圧縮フォーマットに対応できない場合はこの設定を試すとよいと思います。