ドキュメント

Unity Engine

Unity Engine

Web Player 設定

Refer to the UI description of Web Player settings.
読み終わるまでの所要時間 36 分最終更新 1ヶ月前

Player 設定を使用して、Unity でのビルド方法と最終的なウェブアプリケーションがどのように表示されるかを確認します。一般的な Player 設定の説明については、Player 設定を参照してください。
Web Player 設定にアクセスするには、以下を行います。
  • Unity のメインメニューから、Edit > Project Settings > Player に移動します。Player Settings ウィンドウが表示されます。
  • Web タブを選択し、Web Player 設定を表示します。

Web Player 設定

以下のセクションのプロパティが説明されています。
注意Web Player 設定には Icon パネルが表示されますが、ウェブゲームはアイコンを使用しないため、アイコン設定は使用できません。
ウェブでの公開設定の詳細については、ウェブでのビルドと実行を参照してください。

Resolution and Presentation

Resolution and Presentation セクションでは、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) のスプラッシュスクリーン設定。

Other Settings

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

レンダリング

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

ウェブプラットフォームの 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
に費やす時間を短縮できます。
注意: この機能は実験的なものであり、プロジェクトのパフォーマンスが向上しない可能性や、新たなクラッシュの原因となる可能性もあります。
テクスチャ圧縮形式DXT、ETC2、またはASTC を選択して、ウェブプラットフォームのテクスチャ圧縮形式を設定します。正しい形式の選択方法については、テクスチャ圧縮形式の概要を参照してください。また、デスクトップおよびモバイルブラウザー用のビルドをスクリプトから作成する方法については、ウェブのテクスチャ圧縮を参照してください。
Lightmap Encodingライトマップのエンコードを設定するには、Low Quality、Normal Quality、High Quality のいずれかを選択します。この設定は、ライトマップのエンコードスキームと圧縮形式に影響します。詳細については、ライトマップ: 技術に関する情報を参照してください。
HDR Cubemap EncodingHDR キューブマップのエンコードを設定するには、Low Quality、Normal Quality、High Quality のいずれかを選択します。この設定は、HDR キューブマップのエンコードスキームと圧縮形式に影響します。
Lightmap Streaming Enabledライトマップに Mipmap Streaming を使用するかどうかを決定します。Unity では、ライトマップの生成時に、この設定がすべてのライトマップに適用されます。
注意: この設定を使用するには、Texture Mipmap Streaming Quality 設定を有効にする必要があります。
Streaming PriorityMipmap Streaming システムのすべてのライトマップの優先順位を設定します。Unity では、ライトマップの生成時に、この設定がすべてのライトマップに適用されます。
正の数は優先度を高くします。有効な値は -128 から 127 までです。
Frame Timing Statsこれを有効にすると、CPU/GPUフレームタイミング統計を収集します。
Virtual Texturing仮想テクスチャリングを有効にするかどうかを指定します。
ノート: この設定に効力を持たせるには、Unity エディターを再起動する必要があります。
Shader Precision Modelサンプラーのデフォルトの精度とシェーダーで使用する
half
の定義を選択します。詳細については、ShaderPrecisionModel を参照してください。
360 Stereo CaptureUnity がステレオスコピック 360 の画像とビデオをキャプチャできるかどうかを示します。有効にすると、360 キャプチャをサポートするために、Unity で追加のシェーダーバリアントがコンパイルされます (現在は Windows/OSXのみ)。
enable_360_capture
キーワードは
RenderToCubemap
呼び出し中に追加されますが、この機能以外ではトリガーされません。

設定方法

ウェブプラットフォーム 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 Backend を IL2CPP に設定します。
C++ Compiler ConfigurationIL2CPP 生成コードをコンパイルするときに使用する C++ コンパイラーの設定を選択します。
Debugデバッグ設定はすべての最適化をオフにするため、コードのビルドは速くなりますが、実行は遅くなります。
Releaseリリース設定によって最適化が有効になるため、コンパイルされたコードの実行が速くなり、バイナリサイズは小さくなりますが、コンパイルに時間がかかります。
Masterマスター設定により、用意されているすべての最適化が可能になり、対象となるすべてのビットのパフォーマンスが制限されます。例えば、MSVC++ コンパイラーを使用するプラットフォームでは、このオプションを使用すると、リンク時のコードの生成が可能になります。この設定を使用したコードのコンパイルには、リリース設定を使用した場合よりも、大幅に時間がかかる場合があります。Unity では、ビルド時間の増加が許容できる場合は、ゲームの出荷バージョンをマスター設定を使用してビルドすることをお勧めしています。
Use incremental GCインクリメンタルガベージコレクターを使用します。これにより、ガベージコレクションをいくつかのフレームに広げ、フレーム継続時間中にガベージコレクションに関連するスパイクを軽減します。詳しくは、自動メモリ管理 を参照してください。
Allow downloads over HTTPHTTP 経由でのコンテンツのダウンロード許可を設定します。より安全な HTTPS プロトコルが推奨されているため、デフォルトではこのオプションは Not allowed になっています。
Not AllowedHTTP 経由でのコンテンツのダウンロードを許可しません。
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 countUnity がすべてのプラットフォームのメモリに保持する解凍チャンク数のデフォルト制限を設定します。デフォルトは
0
、つまり制限はありません。
Overrideこのビルドターゲットの Default chunk size と Default 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 WarningsC# の警告 CS0169 と CS0649 を表示するかどうかを指定します。
Allow 'unsafe' Code事前定義されたアセンブリ (例えば
Assembly-CSharp.dll
など) での ‘unsafe’ C# コード のコンパイルのサポートを有効にします。
アセンブリ定義ファイル (
.asmdef
) の場合は、
.asmdef
ファイルの 1 つをクリックして、表示される Inspector ウィンドウでオプションを有効にします。
Use Deterministic Compilationdeterministic 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 オプション (Error、Assert、Warning、Log、Exception) を有効にします。詳細は、スタックトレースのログを参照してください。

プロパティ

説明

なしログは記録されません。
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このオプションを選択すると、エラーが発生した場合に、サーバーからダウンロードできる別のファイルにデバッグシンボルを保存します。リリースビルドにはこのオプションの選択を推奨します。
EmbeddedWasm ファイルにデバッグシンボルを埋め込むには、このオプションを選択します。このオプションは、エラーが発生した場合のデバッグシンボルの維持と、スタックトレースのデマングル (元の関数名を表示) 実行に役立ちます。デフォルトでは、このオプションではデマングルによるサポートを利用できます。
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 StacktraceFull Without Stacktrace と同じですが、スタックトレースもキャプチャします。
コードに例外へのチェックを埋め込むと、Unity によってこれらの例外が生成されます。そのため、このオプションはパフォーマンスを低下させ、ブラウザーのメモリ使用量を増やします。このオプションはデバッグにのみ使用し、必ず 64 ビットブラウザーでテストしてください。
Enable Native C/C++ MultithreadingWebAssembly/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 SizeWasm ヒープメモリの初期サイズ (MB) です。デフォルトでは 32 MB に設定されています。Memory Growth Mode が None (なし) に設定されている場合、これは Wasm ヒープメモリの最大サイズでもあります。
Memory Growth ModeWasm ヒープメモリの拡張モードを以下のオプションから選択します。推奨されるオプションは Geometric です。
なしWasm ヒープメモリの固定サイズは、Initial Memory Size で設定されます。
LinearWasm ヒープメモリは、Linear Memory Growth Step で設定された固定量だけ増加します。
GeometricWasm ヒープメモリは、Geometric Memory Growth Stepと Geometric Memory Growth Cap で設定された係数に応じて、現在のヒープサイズと相対的に増加します。
Maximum Memory SizeWasm ヒープメモリの最大サイズ (MB) です。デフォルトでは 2048 MBに設定されており、これが推奨設定です。メモリサイズは 4096 MB まで入力できますが、2048 MB を超えるビルドには、Firefox と Chrome で既知のバグがあります。このオプションは、Memory Growth Mode の Linear または Geometric でのみ使用できます。
Linear Memory Growth StepWasm ヒープ拡張ステップを MB 単位でコントロールする高度な調整オプションです。デフォルトでは 16 MBに設定されています。16 MB の拡張ステップは、拡張が必要になるたびにヒープが 16 MB ずつ増加することを示します。Memory Growth Mode が Linear に設定されている場合にのみ使用できます。
Geometric Memory Growth Step現在のヒープサイズに対する Wasm ヒープ拡張係数をコントロールできる高度な調整オプションです。デフォルトでは、これは 0.2 に設定されています。0.2 の 拡張係数は、ヒープの拡張が必要となるたびに、ヒープのサイズが 0.2 と現在のヒープサイズの乗数ずつ増加することを意味します。Memory Growth Mode が Geometric に設定されている場合にのみ使用できます。
Geometric Memory Growth Cap (MB)ヒープ拡張ステップの制限を MB 単位でコントロールする高度なチューニングオプションです。デフォルトでは、これは 96 MB に設定されています。96 MB の拡張制限は、ヒープのサイズが最大で 96 MB 増加することを意味します。Memory Growth Mode が Geometric に設定されている場合にのみ使用できます。

Diagnostic Overlay 設定の表示

この設定を有効にすると、ウェブビルドを最適化し潜在的な問題の診断に役立つ診断情報 (現在はメモリ使用量に制限されています) を表示できます。有効にすると、ビルドに関するデータのオーバーレイを表示するアイコンがビルドに表示されます。開発ビルドとリリースビルドの両方で使用できます。
  1. 診断情報を表示するには、Player Settings ウィンドウで Show Diagnostics Overlay オプションを有効にします (File > Build Settings > Player Settings > Publishing Settings)。
    デスクトップでは、Diagnostics アイコンがウェブキャンバスのフッターに表示されます。

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

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

    診断ボタンを表示する Android 電話

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

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

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

プロパティ

機能

Total JS MemoryJavaScript (JS) ヒープの現在のサイズ (JS オブジェクトに割り当てられていない未使用メモリを含む) (MB 単位) です。
Used JS MemoryJS オブジェクトが使用しているメモリ (MB 単位) です。
Total Wasm heap memoryEmscripten でコンパイルされた C/C++ Unity エンジンのヒープ全体を表す Linear メモリ (MB 単位の未割り当てメモリを含む) です。
Used WASM heapMB 単位で割り当てられた Wasm ヒープのスペースです。
Page Load Time to First Frameページのロード開始から最初のアプリケーションフレームのレンダリングが完了するまでの合計時間 (ミリ秒単位) です。
Page Load Timeページのロードから最初のフレームのレンダリング開始までの時間 (ダウンロード、コンパイル、解析、メインアプリケーションなど) (ミリ秒単位) です。
Code download timeビルドがコードファイルをダウンロードするのにかかる時間 (ミリ秒単位) です。
Load time of asset file(.data)ビルドがデータファイルバイナリをダウンロードするのにかかる時間 (ミリ秒単位) です。
WebAssembly startup timeJavaScript フレームワークをロードしてから Unity の C++ main() に到達するまでの時間です。これは、Wasm のコンパイル時間 (ミリ秒) に近い値です。
Game startup timeUnity の C++ main() の実行を main の最初のフレームに完了するのにかかる時間です (ミリ秒単位)。通常は、最初のゲームシーンのロードが含まれます。
Average FPS (10 s)過去 10 フレーム/秒の平均です。
Current frames per second1 秒間に画面に描画されるフレーム数です。
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 メッセージ表示

その他の参考資料