Version: 2022.3
言語: 日本語
WebGL アプリケーションのビルドと配信
アセットバンドルによるロード時間の短縮

WebGL アプリケーションのビルド

WebGL 用のビルドを作成するには、Unity のメインメニューから File > Build Settings と移動し、Platform リストで WebGL を選択し Switch Platform をクリックします。

ビルド設定が完了したら、以下のオプションから 1 つを選択します。

  • Build はアプリケーションをプレイヤーにビルドします。 Build and Run はアプリケーションをプレイヤーに ビルドし、ターゲットプラットフォームで開きます。
Build Settings ウィンドウ
Build Settings ウィンドウ

WebGL の Unity ビルドシステムは、以下の設定に対応しています。

設定 機能
Texture Compression ビルドに使用するテクスチャ圧縮形式。詳細については、WebGL テクスチャ圧縮 を参照してください。使用可能なオプションは以下のとおりです。
Use Player Settings これはデフォルトの選択です。Player 設定 ウィンドウで設定したテクスチャ圧縮形式を使用します。
ETC2 モバイル機器で広くサポートされている ETC2 形式を使用。
ASTC モバイル機器で広くサポートされている ASTC 形式を使用。
DXT デスクトップデバイスで広くサポートされている DXT 形式を使用。
Development Build この設定を有効にすると、ビルドにスクリプトデバッグシンボルとプロファイラーが加えられます。この設定を有効にすると、DEVELOPMENT_BUILD スクリプト定義が設定されます。開発ビルドではコンテンツが縮小されないため、配布するにはサイズが大きくなるため、アプリケーションをテストしたい場合にのみ、このオプションを使用してください。
Code Optimization WebGL のコードをコンパイルする際に使用する最適化モードを選択します。
Speed これはデフォルトの設定です。これを選択すると、ランタイムパフォーマンスに対して最適化された WebGL コードを生成します。
Size これを選択すると、ビルドサイズに対して最適化された WebGL コードが生成されます。これは、WebGL ゲームを最小のダウンロード可能なサイズに縮小する場合や、モバイルブラウザー (Android または iOS) が、デフォルト設定のスピードに対して最適化された WebAssembly ビルドをモバイルデバイスが消費するには大きすぎるとしてロードを拒否した大規模プロジェクトに便利です。
Autoconnect Profiler 通常、この設定を有効にすると、自動的に Unity プロファイラーをビルドに接続できます。しかし、WebGL の場合、実行中のビルドに プロファイラー を接続することはできないので、代わりにこのオプションを使用してコンテンツをエディターに接続します。これは、WebGL ではプロファイラーの接続は WebSocket を使って処理されますが、Web ブラウザーではコンテンツからの発信接続しかできないためです。この設定を使用するには、Development Build オプションを有効にする必要があります。
Deep Profiling プロファイラーで ディーププロファイリング をアクティブにするには、この設定を有効にします。これにより、プロファイラーはアプリケーションのすべての関数呼び出しを検査し、より詳細なプロファイリングデータを返します。Deep Profiling Support を有効にすると、スクリプトの実行が遅くなる場合があります。このオプションは Development Build を有効にしている場合にのみ使用できます。
Build それを使ってアプリケーションをビルドします。
Build And Run これをを使用すると、WebGL Player をローカルに表示できます。Unity はローカルのウェブサーバーを使ってビルドをホストし、ローカルホストの URL からそれを開きます。また、レスポンスヘッダーを適切に設定したカスタムのローカルウェブサーバーを使用することもできます。詳しくは、圧縮ビルドとサーバー設定 を参照してください。

Asset Import Overrides の設定変更については、Build Settings を参照してください。

Build フォルダー

Build フォルダーには、以下のファイルが含まれています ([ExampleBuild] は、ターゲットのビルドフォルダーの名を表します)。

ファイル名 含まれるもの
[ExampleBuild].loader.js Unity のコンテンツをロードするためにウェブページが必要とする JavaScript のコード。
[ExampleBuild].framework.js JavaScript のランタイムとプラグイン。
[ExampleBuild].wasm WebAssembly バイナリ。
[ExampleBuild].mem プレイヤーのヒープメモリを初期化するためのバイナリイメージ。Unity はマルチスレッドの WebAssembly ビルドのみに対してこのファイルを生成します。
[ExampleBuild].data アセットデータとシーン。
[ExampleBuild].symbols.json エラーのスタックトレースを解除するのに必要なデバッグシンボル名。このファイルは、Debug Symbols オプション (File > Build Settings > Player Settings) を有効にする場合、リリースビルドに対してのみ生成されます。
[ExampleBuild].jpg ビルドのロード中に表示される背景画像。このファイルは、Player 設定 (File > Build Settings > Player Settings > Splash Image) で Background Image が使用可能な場合にのみ生成されます。詳しくは スプラッシュスクリーン のページを参照してください。

ビルドに対して Compression Method を有効にする場合、Unity は圧縮方法に対応する拡張子を識別し、Build サブフォルダー内のファイル名にこの拡張子を追加します。Decompression Fallback を有効にする場合、Unity はビルドのファイル名に .unityweb という拡張子を追加します。それ以外の場合、Unity は、Gzip 圧縮方式の場合は .gz、Brotli圧縮方式の場合は .br という拡張子を加えます。 詳細については、圧縮ビルドとサーバー設定 を参照してください。

Player 設定 内の Name Files As Hashes を有効にすると、Unity はデフォルトのファイル名の代わりに、ファイルコンテンツのハッシュを使用します。これは、ビルドフォルダー内の各ファイルに適用されます。このオプションにより、ゲームビルドの更新版をサーバー上の同じフォルダーにアップロードし、ビルドの反復の間に変更されたファイルのみをアップロードすることができます。

ノート: ファイルシステムから直接プレイヤーを開くと、ブラウザーによっては動作しないことがあります。これは、ローカルファイルの URL に適用されるセキュリティ制限によるものです。

例外を有効にする

Enable Exceptions を使用して、予期しないコードの動作 (エラーとも呼ばれます) をランタイムに処理する方法を指定できます。Enable Exceptions にアクセスするには、WebGL Player Settings の Publishing Settings セクションに移動します。

以下の基本 API を備えています。

  • None: 例外に関するサポートを必要としない場合はこれを選択します。これにより、最高のパフォーマンスと最小のビルドが得られます。このオプションでは、例外がスローされるとコンテンツはその設定のままエラーで停止します。
  • Explicitly Thrown Exceptions Only (default): これを選択すると、スクリプトの throw ステートメントから明示的に指定された例外をキャッチし、finally ブロックを確実に呼び出します。このオプションを選択すると、スクリプトから生成された JavaScript コードが長く遅くなります。これは、スクリプトがプロジェクトの主なボトルネックになっている場合にのみ問題になります。
  • Full Without Stacktrace: これを選択すると以下をキャプチャします。
    • スクリプトの throw ステートメントから明示的に指定された例外 (Explicitly Thrown Exceptions Only オプションと同じ)
    • Null 参照
    • 範囲外の配列アクセス
  • Full With Stacktrace: このオプションは上記のオプションと似ていますが、スタックトレースもキャプチャします。 Unity はそれらの確認をコードに埋め込むことでこれらの例外を生成します。そのため、このオプションはパフォーマンスを低下させ、ブラウザーのメモリ使用量を増やします。このオプションはデバッグにのみ使用し、常に 64 ビットブラウザーでテストしてください。
WebGL アプリケーションのビルドと配信
アセットバンドルによるロード時間の短縮