【2021年最新】 UnityでWebGLを出力して、サイト上にアップする際の手順&注意点

UnityでWebGLを出力する際の手順と注意点をまとめます。


手順

ビルド手順

1. プラットフォームを切り替える

File > Build Settingsを開いて、WebGLを選択して、Switch Platformをクリック。

UnityでWebGLを出力する手順


2. ビルド対象となるシーンの追加

Add Open Sceneボタンをクリックして、ビルドしたいシーンを追加する。
他のシーンも複数追加したい場合、Projectからドラッグ&ドロップで放り込むこともできる。

UnityでWebGLを出力する手順


3. Decompression Fallbackを設定

File > Build Settings > Player Settings > Publish SettingsでDecompression Fallback(下図の一番下)にチェックを入れる。理由は後述。

UnityでWebGLを出力する手順


4. ビルド

Build & Runボタンをクリック。保存先を聞かれるので、任意のフォルダを選んで実行。
ビルドはかなり時間がかかる。
Buildは3Dゲームの場合、数十分から数時間かかることもあるらしい...

UnityでWebGLを出力する手順


ローカルで動作確認する手順 (Chromeを使用)

クロスオリジンの制約で、ビルドしたindex.htmlを普通に開いても、ローカルで見ることができません。

そんな時には、Web Server for Chromeを使います。


1. Web Server for Chromeを入れる

Web Server for Chromeにアクセスして、Chromeに追加。
追加されると、chrome://appsに追加され、起動する。


2. 起動

CHOOSE FOLDERで、ビルドしたフォルダを選択して、http://127.0.0.1:8887のリンクを開くことで、無事にゲームをローカルで起動できる。

Web Server for Chrome


サイトにアップする

Netlifyなどのサービスを使って、サーバーにBuildしてできたファイル群をまとめてアップしましょう。

ブログなどに埋め込む際には、
<iframe width="幅の数値" height="高さの数値" src="WebGLプレイヤーのURL" frameborder="0" allowfullscreen></iframe>
とすればOKです。


注意

Decompression Fallbackにチェックを入れておかないと、ゲームがほぼ読み込まれたところで、Uncaught ReferenceError: unityFramework is not definedのエラーが出て、先に進まなくなります。

Uncaught ReferenceError: unityFramework is not definedのエラー

公式ドキュメントによると、Decomppression Fallbackを有効にすると、解凍フォールバックコードがローダーに含まれるようになり、「Content-Encoding」レスポンスヘッダーがサーバー側で適切に設定できない場合に、圧縮されたビルドをダウンロードして実行することができる、らしいです。