Version: Unity 6.0 (6000.0)
言語 : 日本語
ウェブ開発
ブラウザースクリプトとの相互作用

Web Player 設定

Player 設定を使用して、Unity でのビルド方法と最終的なウェブアプリケーションがどのように表示されるかを確認します。一般的な Player 設定の説明については、Player 設定を参照してください。

Web Player 設定にアクセスするには、以下を行います。

  • Unity のメインメニューから、Edit > Project Settings > Player に移動します。Player Settings ウィンドウが表示されます。
  • Web タブを選択し、Web Player 設定を表示します。
Web Player 設定
Web Player 設定

以下のセクションのプロパティが説明されています。

注意Web Player 設定には Icon パネルが表示されますが、ウェブゲームはアイコンを使用しないため、アイコン設定は使用できません。

ウェブでの公開設定の詳細については、ウェブでのビルドと実行を参照してください。

Resolution and Presentation

Resolution and Presentation セクションでは、Resolution セクションの画面表示をカスタマイズします。

Web Player プラットフォームの Resolution セクション
Web Player プラットフォームの Resolution セクション

Resolution

以下のオプションを編集することで、ウェブキャンバス要素の画面モードとデフォルトサイズをカスタマイズできます。

設定 機能
Default Canvas Width ウェブキャンバス要素の幅を設定します。
Default Canvas Height ウェブキャンバス要素の高さを設定します。
Run In Background これを有効にすると、キャンバスやブラウザーウィンドウがフォーカスを失ったときにもコンテンツを継続して実行できます。

ウェブテンプレート

ウェブプロジェクトに使用するテンプレートを選択します。

  • Default ページはグレーのキャンバスにプログレスバーがあるシンプルな白いページです。
  • Minimal ページにはウェブコンテンツを実行するのに必要な定型コードのみが含まれます。
  • PWA ページには、ウェブマニフェストファイルとサービスワーカーコードを含む__プログレッシブウェブアプリケーション__があります。

ウェブテンプレート内の手順を使用して、完成したゲームに近い環境でゲームを実行するために独自のテンプレートを使用できます。

Splash Image

Virtual Reality Splash Image 設定を使用して、XR ディスプレイのカスタムスプラッシュ画像を指定します。一般的なスプラッシュスクリーン設定については、スプラッシュスクリーンを参照してください。

仮想現実 (VR) のスプラッシュスクリーン設定。
仮想現実 (VR) のスプラッシュスクリーン設定。

Other Settings

Other Settings のセクションでは、以下のグループに分類されたさまざまなオプションをカスタマイズできます。

レンダリング

これらの設定を使用して、ウェブプラットフォーム向けにゲームをレンダリングする方法をカスタマイズします。

ウェブプラットフォームの Rendering Player 設定
ウェブプラットフォームの Rendering Player 設定
設定 機能
Color Space レンダリングに使用する色空間を、Gamma または Linear から選択します。
この 2 つの違いについては、Linear レンダリングの概要を参照してください。
Auto Graphics API このオプションを無効にすると、グラフィックス API を手動で選択して並べ替えることができます。このオプションはデフォルトで有効になっており、Unity では WebGL2.0 と、WebGL2.0 がサポートされない場合の代替として WebGL1.0 が使用されます。
Static Batching このオプションを有効にして、静的バッチ処理を行います。
Dynamic Batching ビルドの動的バッチ処理を使用するには、このボックスを設定します (デフォルトでは有効です)。
Graphics Jobs このオプションを有効にすると、グラフィックスタスク (レンダリングのループ) が他の CPU コア上で動作するワーカースレッドにオフロードされます。これにより、ボトルネックになることが多いメインスレッドの Camera.Render に費やす時間を短縮できます。
注意: この機能は実験的なものであり、プロジェクトのパフォーマンスが向上しない可能性や、新たなクラッシュの原因となる可能性もあります。
テクスチャ圧縮形式 DXTETC2、またはASTC を選択して、ウェブプラットフォームのテクスチャ圧縮形式を設定します。正しい形式の選択方法については、テクスチャ圧縮形式の概要を参照してください。また、デスクトップおよびモバイルブラウザー用のビルドをスクリプトから作成する方法については、ウェブのテクスチャ圧縮を参照してください。
Lightmap Encoding ライトマップのエンコードを設定するには、Low QualityNormal QualityHigh Quality のいずれかを選択します。この設定は、ライトマップのエンコードスキームと圧縮形式に影響します。詳細については、ライトマップ: 技術に関する情報を参照してください。
HDR Cubemap Encoding HDR キューブマップのエンコードを設定するには、Low QualityNormal QualityHigh Quality のいずれかを選択します。この設定は、HDR キューブマップのエンコードスキームと圧縮形式に影響します。
Lightmap Streaming Enabled ライトマップに Mipmap Streaming を使用するかどうかを決定します。Unity では、ライトマップの生成時に、この設定がすべてのライトマップに適用されます。
注意: この設定を使用するには、Texture Mipmap Streaming Quality 設定を有効にする必要があります。
Streaming Priority Mipmap Streaming システムのすべてのライトマップの優先順位を設定します。Unity では、ライトマップの生成時に、この設定がすべてのライトマップに適用されます。
正の数は優先度を高くします。有効な値は –128 から 127 までです。
Frame Timing Stats これを有効にすると、CPU/GPUフレームタイミング統計を収集します。
Virtual Texturing 仮想テクスチャリングを有効にするかどうかを指定します。
ノート: この設定に効力を持たせるには、Unity エディターを再起動する必要があります。
Shader Precision Model サンプラーのデフォルトの精度とシェーダーで使用する half の定義を選択します。詳細については、ShaderPrecisionModel を参照してください。
360 Stereo Capture Unity がステレオスコピック 360 の画像とビデオをキャプチャできるかどうかを示します。有効にすると、360 キャプチャをサポートするために、Unity で追加のシェーダーバリアントがコンパイルされます (現在は Windows/OSXのみ)。enable_360_capture キーワードは RenderToCubemap 呼び出し中に追加されますが、この機能以外ではトリガーされません。

設定方法

ウェブプラットフォーム Configuration 設定
ウェブプラットフォーム Configuration 設定
プロパティ 説明
Scripting Backend : 使用するスクリプティングバックエンドを選択します。スクリプティングバックエンドは、プロジェクトの C# コードを Unity がコンパイルし実行する方法を決定します。
Mono :C# コードを .NET Common Intermediate Language (CIL) にコンパイルし、その CIL を Common Language Runtime を使用して実行します。詳細については、Mono を参照してください。
IL2CPP : C# コードを CIL にコンパイルし、CIL を C++ に変換して、次に、その C++ をネイティブのマシンコードにコンパイルします。これは、ランタイムに直接実行されます。詳細については、IL2CPP を参照してください。
API Compatibility Level プロジェクトに使用する .NET API を選択します。この設定はサードパーティ製のライブラリとの互換性に影響します。ただし、エディター固有のコード (エディターディレクトリまたはエディター固有の Assembly Definition 内のコード) には影響しません。

ヒント: サードパーティ製のアセンブリで問題が発生した場合は、下の API Compatibility Level セクションを参照してください。
.Net Framework .NET Framework 4 (.NET Standard 2.0 プロファイルのすべてと追加 API を含む) と互換性があります。.NET Standard 2.0 に含まれていない API にアクセスするライブラリを使用する場合は、このオプションを選択します。より大きいビルドを作成し、使用可能な追加の API を作成することがすべてのプラットフォームで必ずしもサポートされるわけではありません。詳細については、追加のクラスライブラリアセンブリの参照 を参照してください。
.Net Standard 2.1 ビルドのサイズが小さくなり、完全なクロスプラットフォームをサポートします。
エディターアセンブリ互換性レベル エディターアセンブリで使用する .NET API を選択します。
.NET Framework .NET Framework 4 (.NET Standard 2.1 プロファイルのすべてと追加 API を含む) と互換性があります。.NET Standard 2.1 に含まれていない API にアクセスするライブラリを使用する場合は、このオプションを選択します。より大きいビルドを作成し、使用可能な追加の API を作成することがすべてのプラットフォームで必ずしもサポートされるわけではありません。詳細については、追加のクラスライブラリアセンブリの参照 を参照してください。
.NET Standard .NET Standard 2.1 と互換性があります。ビルドのサイズが小さくなり、完全なクロスプラットフォームをサポートします。
IL2CPP Code Generation Unity での IL2CPP コード生成の管理方法を定義します。

ノート: これを使用するには、Scripting BackendIL2CPP に設定します。
C++ Compiler Configuration IL2CPP 生成コードをコンパイルするときに使用する C++ コンパイラーの設定を選択します。
Debug デバッグ設定はすべての最適化をオフにするため、コードのビルドは速くなりますが、実行は遅くなります。
Release リリース設定によって最適化が有効になるため、コンパイルされたコードの実行が速くなり、バイナリサイズは小さくなりますが、コンパイルに時間がかかります。
Master マスター設定により、用意されているすべての最適化が可能になり、対象となるすべてのビットのパフォーマンスが制限されます。例えば、MSVC++ コンパイラーを使用するプラットフォームでは、このオプションを使用すると、リンク時のコードの生成が可能になります。この設定を使用したコードのコンパイルには、リリース設定を使用した場合よりも、大幅に時間がかかる場合があります。Unity では、ビルド時間の増加が許容できる場合は、ゲームの出荷バージョンをマスター設定を使用してビルドすることをお勧めしています。
Use incremental GC インクリメンタルガベージコレクターを使用します。これにより、ガベージコレクションをいくつかのフレームに広げ、フレーム継続時間中にガベージコレクションに関連するスパイクを軽減します。詳しくは、自動メモリ管理 を参照してください。
Allow downloads over HTTP HTTP 経由でのコンテンツのダウンロード許可を設定します。より安全な HTTPS プロトコルが推奨されているため、デフォルトではこのオプションは Not allowed になっています。
Not Allowed HTTP 経由でのコンテンツのダウンロードを許可しません。
Allowed in Development Builds 開発ビルドでのみ HTTP 経由のダウンロードを許可します。
Always Allowed 開発ビルドとリリースビルドで HTTP 経由のダウンロードを許可します。
Active Input Handling ユーザーの入力をどのように処理するかを選択します。
Input Manager (Old) 従来の Input 設定を使用します。
Input System Package (New) Input システムを使用します。このオプションを使用するには、InputSystem パッケージ をインストールする必要があります。
Both 両方のシステムを使用します。

シェーダーバリアントのロード

これらの設定を使用して、ランタイムにシェーダーが使用するメモリ量を制御します。

プロパティ 説明
Default chunk size (MB) すべてのプラットフォームのビルドされたアプリケーション内に Unity が保存する、圧縮されたシェーダーバリアントのデータチャンクの最大サイズを設定します。デフォルト値は 16 です。詳細は、シェーダーのロード を参照してください。
Default chunk count Unity がすべてのプラットフォームのメモリに保持する解凍チャンク数のデフォルト制限を設定します。デフォルトは 0、つまり制限はありません。
Override このビルドターゲットの Default chunk sizeDefault chunk count のオーバーライドを有効にします。
Chunk size (MB) このビルドターゲットの Default chunk size (MB) の値をオーバーライドします。
Chunk count このビルドターゲットの Default chunk count の値をオーバーライドします。

API Compatibility Level

すべてのターゲットに対する Mono の API Compatibility Level を選択できます。サードパーティ製の .NET ライブラリで、.NET 互換性レベルに該当しない機能が使用されることがあります。そのような場合に状況を把握し、最適な修正を加えるには、以下の推奨手順を試してください。

  1. ILSpy for Windows をインストールします。
  2. API 互換性レベルに問題がある .NET アセンブリを ILSpy にドラッグします。問題のあるファイルは Frameworks/Mono/lib/mono/YOURSUBSET/ にあります。
  3. サードパーティのアセンブリをドラッグします。
  4. サードパーティのアセンブリを右クリックし、Analyze を選択します。
  5. 分析レポートで Depends on セクションを調べます。サードパーティのアセンブリが依存していても、選択した .NET 互換性レベルで使用できないものは、赤字でハイライトされます。

スクリプトのコンパイル

ウェブプラットフォームのスクリプトコンパイル設定
ウェブプラットフォームのスクリプトコンパイル設定
プロパティ 説明
Scripting Define Symbols カスタムコンパイルフラグを設定します。

詳細については、プラットフォーム依存のコンパイルを参照してください。
Additional Compiler Arguments このリストにエントリーを追加し、Roslyn コンパイラーに追加の引数を渡します。引数を追加するごとに 1 つの新しいエントリーを使用します。
新しいエントリーを作成するには、Add (+) をクリックします。エントリーを削除するには、Remove (-) をクリックします。

必要な引数をすべて追加して、Apply をクリックすると、その後のコンパイルに追加の引数が含まれるようになります。Revert をクリックすると、このリストが最近適用された状態にリセットされます。
Suppress Common Warnings C# の警告 CS0169CS0649 を表示するかどうかを指定します。
Allow ‘unsafe’ Code 事前定義されたアセンブリ (例えば Assembly-CSharp.dll など) での ‘unsafe’ C# コード のコンパイルのサポートを有効にします。
アセンブリ定義ファイル (.asmdef) の場合は、.asmdef ファイルの 1 つをクリックして、表示される Inspector ウィンドウでオプションを有効にします。
Use Deterministic Compilation deterministic C# フラグを使用して、コンパイルを阻止するかどうかを指定します。この設定を有効にすると、コンパイルされるアセンブリは、コンパイルされるたびにバイト単位で同じになります。

詳細については、コード生成を制御する C# コンパイラーオプションを参照してください。

Optimization

ウェブプラットフォームの最適化設定
ウェブプラットフォームの最適化設定
プロパティ 説明
Prebake Collision Meshes ビルド時に メッシュ に衝突データを追加します。
Preloaded Assets 起動時にプレイヤーが読み込むためのアセットの配列を設定します。
新しいアセットを追加するには、Size プロパティの値を引き上げ、表示される新しい Element ボックスに読み込むようにアセットへの参照を設定します。
Strip Engine Code : プロジェクトが使用しない Unity エンジン機能のコードを Unity Linker ツールが削除するように設定する必要がある場合に、このオプションを有効にします。この設定は、IL2CPP スクリプティングバックエンド でのみ利用可能です。ほとんどのアプリケーションは、利用可能なすべての DLL を使用するわけではありません。このオプションは、アプリケーションが使用しない DLL を削除し、ビルドされたプレイヤーのサイズを縮小します。現在の設定で通常は削除される 1 つ以上のクラスをアプリケーションが使用している場合に、アプリケーションをビルドしようとすると、Unity はデバッグメッセージを表示します。
Managed Stripping Level 使用していないマネージ (C#) コードを Unity がどれだけ積極的に削除するかを選択します。Unity がアプリケーションをビルドするとき、Unity リンカーの処理により、プロジェクトが使用するマネージ DLL から未使用のコードを取り除くことができます。コードストリッピングは、結果の実行ファイルを小さくできますが、使用中のコードを削除する場合があります。

これらのオプションと IL2CPP によるバイトコードストリッピングの詳細については、ManagedStrippingLevel を参照してください。
最低限 これを使用して、クラスライブラリ、UnityEngine、Windows ランタイムアセンブリを削除し、他のすべてのアセンブリをコピーします。
ビルドサイズと Mono/IL2CPP のビルド時間を減らすために、アクセス不能なマネージコードを削除します。
UnityLinker を実行して、Low で達成できる範囲を超えるコードサイズを削減します。カスタム link.xml ファイルのサポートが必要な場合があります。また、リフレクションコードパスの中には、同じ動作をしないものがあります。
UnityLinker は可能な限り多くのコードを削除します。これにより、Medium で達成できる範囲を超えてコードサイズがさらに削減されますが、一部のメソッドのマネージコードが機能しなくなる場合があります。カスタム link.xml ファイルのサポートが必要な場合があります。また、リフレクションコードパスの中には、同じ動作をしないものがあります。
Enable Internal Profiler (Deprecated) : この機能は非推奨であり、Unity の将来のバージョンで廃止される予定です。代わりに Profiler ウィンドウ を使用してください (メニュー: Window > Analytics > Profiler)。

プロファイラーはアプリケーションのパフォーマンスデータを収集し、レポートをコンソールに出力します。レポートには、Unity の各サブシステムがそれぞれのフレームで実行に要したミリ秒数が 30 フレーム平均で表示されます。
Vertex Compression チャンネルごとに頂点圧縮を設定します。これはプロジェクト内のすべてのメッシュに影響します。
通常、頂点圧縮は、メモリ内のメッシュデータのサイズを縮小し、ファイルサイズを削減し、GPU パフォーマンスを向上するために使用します。

頂点圧縮の設定方法とこの設定の制限については、メッシュデータの圧縮 を参照してください。
Optimize Mesh Data このオプションを有効にすると、ビルドで使用されるメッシュから未使用の頂点属性が削除されます。このオプションは、メッシュ内のデータ量を削減し、ビルドサイズ、ロード時間、ランタイムのメモリ使用量の削減を支援します。

注意: この設定を有効にしている場合は、ランタイムにマテリアルやシェーダーの設定を変更しないようにしてください。

詳細については PlayerSettings.stripUnusedMeshComponents を参照してください。
テクスチャミップマップのストリッピング すべてのプラットフォームでミップマップのストリッピングを有効にします。これにより、ビルド時にテクスチャから未使用のミップマップレベルが削除されます。
Unity は、ミップマップのレベルを現在のプラットフォームの品質設定と比較して、未使用のミップマップレベルを判別します。ミップマップレベルが現在のプラットフォームのすべての品質設定の範囲外にある場合は、ビルド時にそれらのミップマップレベルをビルドから削除します。QualitySettings.globalTextureMipmapLimit が削除されたミップマップレベルに設定されている場合、Unity は削除されていない最も近いミップマップレベルに値を設定します。

スタックトレース

ウェブプラットフォームのログ設定を選択します。

ウェブプラットフォームのログ設定
ウェブプラットフォームのログ設定

スタックトレース方法を選択するには、必要なログの種類に基づいて対応する各 Log Type オプション (ErrorAssertWarningLogException) を有効にします。詳細は、スタックトレースのログを参照してください。

プロパティ 説明
なし ログは記録されません。
ScriptOnly スクリプトの実行時にのみログを記録します。
full 常にログを記録します。

Legacy

Clamp BlendShapes (Deprecated) オプションを有効にすると、SkinnedMeshRenderers でブレンドシェイプのウェイトの範囲を固定できます。

ウェブプラットフォームの以前の設定
ウェブプラットフォームの以前の設定

公開設定

公開設定を使用して、Unity でのウェブプラットフォームアプリケーションのビルド方法を設定します。例えば、ビルドにファイルを保存するようにブラウザーキャッシュを有効化できます。

ウェブプラットフォームの公開設定
ウェブプラットフォームの公開設定
プロパティ 説明
Compression Format リリースビルドファイルに使用する圧縮形式を選択します。これで HDRP がモーションベクトルをレンダリングできるようになります。オブジェクトモーションベクトルを有効にする場合は、デフォルトにより、新しいメッシュレンダラーがオブジェクトモーションベクトルを書きますので、注意してください。この動作を変更するには、メッシュレンダラーを選択し、Inspector で Motion Vectors プロパティーの値を変更します。
!Gzip、Brotli、Disabled (none) が選択できます。このオプションは開発ビルドには影響しません。
Name Files As Hashes このオプションを有効にすると、ビルドの各ファイルのファイル名として非圧縮ファイルコンテンツの MD5 ハッシュを使用できます。
Data caching このオプションを有効にすると、コンテンツのアセットのデータがユーザーのマシンに自動的にキャッシュされ、その後の実行時に (コンテンツが変更されていない限り) 再ダウンロードする必要がなくなります。
キャッシュの保存はブラウザーが提供する IndexedDB API を使用して実装されます。一部のブラウザーでは、特定のサイズを超えるデータをキャッシュする許可をユーザーに求めるなど、関連する制限を実装できます。
Debug Symbols 使用可能なオプションから選択して、ビルドにデバッグシンボルを追加する方法を指定します。
Off ビルドにデバッグシンボルを追加しない場合は、このオプションを選択します。
External このオプションを選択すると、エラーが発生した場合に、サーバーからダウンロードできる別のファイルにデバッグシンボルを保存します。リリースビルドにはこのオプションの選択を推奨します。
Embedded Wasm ファイルにデバッグシンボルを埋め込むには、このオプションを選択します。このオプションは、エラーが発生した場合のデバッグシンボルの維持と、スタックトレースのデマングル (元の関数名を表示) 実行に役立ちます。デフォルトでは、このオプションではデマングルによるサポートを利用できます。
Decompression Fallback ビルドファイルの解凍フォールバックコードをローダーに追加します。選択した圧縮方法に従ってサーバー応答ヘッダーを設定できない場合は、このオプションを使用します。
Power Preference マルチ GPU デバイスでのレンダリングで使用する GPU の優先順位を設定します。ブラウザーがこの設定を無視する場合があるため、注意してください。
Default ブラウザーが GPU 設定を選択できるようにします。
Low Performance ブラウザーに内蔵 GPU を使用して電力節約の優先順位を付けるようリクエストします。
High Performance ブラウザーに外部 GPU を使用してレンダリングパフォーマンスを優先させるようにリクエストします。

WebAssembly の言語機能

このセクションでは、ウェブアプリケーション用に WebAssembly の言語機能をカスタマイズします。

プロパティ 説明
Enable Exceptions ランタイムでの予期しないコード動作 (通常はエラーと見なされる) の処理方法を選択します。
なし 例外がスローされると、コンテンツはエラーで停止します。
例外に関するサポートを必要としない場合は、このオプションを選択します。これにより、最適なパフォーマンスを得つつビルドを最小にできます。
Explicitly Thrown Exceptions Only (デフォルト) スクリプトの throw ステートメントから明示的に指定された例外をキャプチャし、finally ブロックが呼び出されることを確認します。
このオプションを使用すると、スクリプトから生成される JavaScript コードが長くなり、時間もかかります。これは、スクリプトがプロジェクトの主なボトルネックである場合にのみ問題になる可能性があります。
Full Without Stacktrace スクリプトの throw ステートメント、null 参照、範囲外の配列アクセスから明示的に指定された例外をキャプチャします。
Full With Stacktrace Full Without Stacktrace と同じですが、スタックトレースもキャプチャします。
コードに例外へのチェックを埋め込むと、Unity によってこれらの例外が生成されます。そのため、このオプションはパフォーマンスを低下させ、ブラウザーのメモリ使用量を増やします。このオプションはデバッグにのみ使用し、必ず 64 ビットブラウザーでテストしてください。
Enable Native C/C++ Multithreading WebAssembly/SharedArrayBuffer マルチスレッド (実験的機能) をターゲットとする Unity のネイティブ C/C++ エンジンコードを使用するには、このオプションを有効にします。WebAssembly 言語標準をさらに高度化させる必要があるため、この有効化によって C# コードのマルチスレッド化はできません。このオプションは無効にし、今後のウェブ機能の評価にのみ使用することをお勧めします。
Enable WebAssembly 2023 有効にすると、生成された WebAssembly コードが WebAssembly 2023 をターゲットにします。WebAssembly 2023 は、新しい WebAssembly 言語機能セットの Unity での名称です。これらの機能には、符号拡張オペコード、非トラップ fp-to-int 命令、バルクメモリ、JS BigInt インテグレーション、WebAssembly.Table、ネイティブ WebAssembly 例外、SIMD (Chrome 91 以降 (2021 年 5 月)、Firefox 89 以降 (2021 年 6 月)、Safari 16.4 以降 (2023 年 3 月) が必要) などがあります。無効にすると、元の WebAssembly MVP 機能セットがターゲットになります。
Use WebAssembly.Table ウェブビルドで WebAssembly.Table 言語機能をターゲットにして JS-Wasm の相互運用とビルド時間を短縮する場合に、このオプションを有効します。このオプションを無効にすると、ウェブビルドのターゲットは、古い Unity ウェブ JS プラグインとの後方互換性のために、非推奨の古い Emscripten -sDYNCALLS モデルになります。互換性のない古い JavaScript プラグインを使用しない新しいプロジェクトではこのオプションを有効にし、古い dynCall() メカニズムに依存する .jslib ファイルを使用する場合は無効にすることをお勧めします。
注意: WebAssembly.Table は後方互換性がありません。WebAssembly.Table をターゲットにする場合は、Emscripten ランタイム機能 getWasmTableEntry(functionPtr) を使用して機能ポインタを呼び出し可能な JS 機能に変換するか、Emscripten コードテンプレート {{{ makeDynCall('sig', 'variableName') }}}(...args); を使用して機能ポインタを呼び出します。以前の Emscripten ランタイム機能ファミリ dynCall_sig(ptr, ...args); は、WebAssembly.Table ではサポートされません。コード例については、Emscripten のドキュメントを参照してください。
Enable BigInt このオプションを有効にすると、WebAssembly.BigInt 言語機能をターゲットにし、WebAssembly で BigInt 型を使用します。これにより、ビルド時間が短縮され、コードサイズが若干小さくなります。このオプションを無効にすると、WebAssembly でその BigInt タイプは使用できません。生成された WebAssembly コードは、64 ビット変数を含む機能シグネチャの BigInt ABI に依存します。Wasm BigInt 機能をサポートしない古いブラウザーをターゲットにする場合は、このオプションを無効にします。このオプションは、新しいプロジェクトでビルドのイテレーション時間が短い場合に有効にし、古いブラウザーとの後方互換性のターゲットが重要な場合は無効にすることをお勧めします。
注意: Wasm BigInt の特徴には、少なくとも Chrome 85 (2020 年 8 月 25 日)、Firefox 78 (2020 年 6 月 30 日)、Safari 14.5 (2021 年 4 月 26 日)、またはそれ以降のバージョンが必要です。
Initial Memory Size Wasm ヒープメモリの初期サイズ (MB) です。デフォルトでは 32 MB に設定されています。Memory Growth ModeNone (なし) に設定されている場合、これは Wasm ヒープメモリの最大サイズでもあります。
Memory Growth Mode Wasm ヒープメモリの拡張モードを以下のオプションから選択します。推奨されるオプションは Geometric です。
なし Wasm ヒープメモリの固定サイズは、Initial Memory Size で設定されます。
Linear Wasm ヒープメモリは、Linear Memory Growth Step で設定された固定量だけ増加します。
Geometric Wasm ヒープメモリは、Geometric Memory Growth StepGeometric Memory Growth Cap で設定された係数に応じて、現在のヒープサイズと相対的に増加します。
Maximum Memory Size Wasm ヒープメモリの最大サイズ (MB) です。デフォルトでは 2048 MBに設定されており、これが推奨設定です。メモリサイズは 4096 MB まで入力できますが、2048 MB を超えるビルドには、Firefox と Chrome で既知のバグがあります。このオプションは、Memory Growth ModeLinear または Geometric でのみ使用できます。
Linear Memory Growth Step Wasm ヒープ拡張ステップを MB 単位でコントロールする高度な調整オプションです。デフォルトでは 16 MBに設定されています。16 MB の拡張ステップは、拡張が必要になるたびにヒープが 16 MB ずつ増加することを示します。Memory Growth ModeLinear に設定されている場合にのみ使用できます。
Geometric Memory Growth Step 現在のヒープサイズに対する Wasm ヒープ拡張係数をコントロールできる高度な調整オプションです。デフォルトでは、これは 0.2 に設定されています。0.2 の 拡張係数は、ヒープの拡張が必要となるたびに、ヒープのサイズが 0.2 と現在のヒープサイズの乗数ずつ増加することを意味します。Memory Growth ModeGeometric に設定されている場合にのみ使用できます。
Geometric Memory Growth Cap (MB) ヒープ拡張ステップの制限を MB 単位でコントロールする高度なチューニングオプションです。デフォルトでは、これは 96 MB に設定されています。96 MB の拡張制限は、ヒープのサイズが最大で 96 MB 増加することを意味します。Memory Growth ModeGeometric に設定されている場合にのみ使用できます。

Diagnostic Overlay 設定の表示

この設定を有効にすると、ウェブビルドを最適化し潜在的な問題の診断に役立つ診断情報 (現在はメモリ使用量に制限されています) を表示できます。有効にすると、ビルドに関するデータのオーバーレイを表示するアイコンがビルドに表示されます。開発ビルドとリリースビルドの両方で使用できます。

  1. 診断情報を表示するには、Player Settings ウィンドウで Show Diagnostics Overlay オプションを有効にします (File > Build Settings > Player Settings > Publishing Settings)。

    デスクトップでは、Diagnostics アイコンがウェブキャンバスのフッターに表示されます。

    キャンバスのフッターにある Diagnostics ボタン
    キャンバスのフッターにある Diagnostics ボタン

    モバイルデバイスでは、画面の右下に Diagnostics アイコンが表示されます。

    診断ボタンを表示する Android 電話
    診断ボタンを表示する Android 電話
  2. Diagnostics アイコンをクリックします。オーバーレイが表示され、JavaScript メモリが示されますが、ここでさらに細かく分類され、Wasm ヒープメモリ使用量がわかります。

JavaScript メモリ分布と Wasm ヒープメモリの使用状況が表示された Diagnostics オーバーレイ
JavaScript メモリ分布と Wasm ヒープメモリの使用状況が表示された Diagnostics オーバーレイ

オーバーレイ画面に以下の診断が表示されます。

プロパティ 機能
Total JS Memory JavaScript (JS) ヒープの現在のサイズ (JS オブジェクトに割り当てられていない未使用メモリを含む) (MB 単位) です。
Used JS Memory JS オブジェクトが使用しているメモリ (MB 単位) です。
Total Wasm heap memory Emscripten でコンパイルされた C/C++ Unity エンジンのヒープ全体を表す Linear メモリ (MB 単位の未割り当てメモリを含む) です。
Used WASM heap MB 単位で割り当てられた Wasm ヒープのスペースです。
Page Load Time to First Frame ページのロード開始から最初のアプリケーションフレームのレンダリングが完了するまでの合計時間 (ミリ秒単位) です。
Page Load Time ページのロードから最初のフレームのレンダリング開始までの時間 (ダウンロード、コンパイル、解析、メインアプリケーションなど) (ミリ秒単位) です。
Code download time ビルドがコードファイルをダウンロードするのにかかる時間 (ミリ秒単位) です。
Load time of asset file(.data) ビルドがデータファイルバイナリをダウンロードするのにかかる時間 (ミリ秒単位) です。
WebAssembly startup time JavaScript フレームワークをロードしてから Unity の C++ main() に到達するまでの時間です。これは、Wasm のコンパイル時間 (ミリ秒) に近い値です。
Game startup time Unity の C++ main() の実行を main の最初のフレームに完了するのにかかる時間です (ミリ秒単位)。通常は、最初のゲームシーンのロードが含まれます。
Average FPS (10 s) 過去 10 フレーム/秒の平均です。
Current frames per second 1 秒間に画面に描画されるフレーム数です。
Number of Frame Stalls 前のフレームと比較して、完了までに異常に時間がかかった描画済みフレームの数です。

JS メモリに関する重要な注意事項

JS メモリ情報は、現在 Chrome または Edge でのみサポートされている performance.memory API を使用して取得されます。Safari や Firefox でこの情報を返す他の API はありません。

注意: performance.memory API は iOS デバイスではサポートされていません。

この API がサポートされていないブラウザーでは、N/A を示すメッセージが表示されます。

performance.memory API をサポートしないブラウザーでの N/A メッセージ表示
performance.memory API をサポートしないブラウザーでの N/A メッセージ表示

その他の参考資料

PlayerSettingsWebGL

ウェブ開発
ブラウザースクリプトとの相互作用