Version: 2023.1
言語: 日本語
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 のコードをコンパイルする際に使用する最適化モードを選択します。
Shorter Build Time This is the default setting. Select this option to generate WebGL code that takes the least amount of time to build.
Runtime Speed Select this option to generate WebGL code that’s optimized for runtime performance, at the expense of taking a longer time to build.
Runtime Speed with LTO This is the same as Runtime Speed, but with an additional Link Time Optimizations (LTO) stage (sometimes called Whole Program Optimization). Enable LTO when compiling Master shipping builds for deployment to end users.
Disk Size Select this option to favor optimizations that minimize build size, at the expense of taking a longer time to build. The recommended best practice is to select this option when targeting mobile web browsers, that may have limits on the size of WebAssembly files that can be loaded. Smaller disk sizes generally result in shorter page startup times.
Disk Size with LTO This is the same as Disk Size, but enables additional Link Time Optimizations (LTO) stage (sometimes called Whole Program Optimization). Select this option when compiling Master shipping builds for deployment to end users.
Autoconnect Profiler Typically, when enabled, this setting allows you to automatically connect the Unity Profiler to your build. However for WebGL, as you can’t connect the Profiler to a running build, use this option to connect the content to the Unity Editor instead. This is because the Profiler connection is handled using WebSockets on WebGL, but a web browser only allows outgoing connections from the content. For this setting to be available, you must enable the Development Build option.
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 アプリケーションのビルドと配信
アセットバンドルによるロード時間の短縮