Version: Unity 6.0 (6000.0)
言語 : 日本語
ウェブビルドの最適化に推奨される Graphics 設定
ウェブビルドの最適化に推奨される Quality Settings

ウェブビルドの最適化に推奨される Player 設定

推奨される以下の Player 設定を使用して、Unity ウェブプラットフォーム用にビルドを最適化します。

Player 設定のクイックリファレンス

Edit > Project settings > Player を選択して設定を行います。各設定の詳細については、Player 設定を参照してください。

設定 目的に合わせた推奨設定 説明
API Compatibility Level .NET Standard 2.1 より小さいビルドを生成します。
IL2CPP Code Generation Faster (smaller) builds ビルドサイズとイテレーションに最適化されたコードを生成します。
Managed Stripping Level より小さなビルドを作成するために高レベルのマネージストリッピングを行います。

Publishing Settings セクションで、推奨される以下の設定を行います。

設定 目的に合わせた推奨設定 説明
Compression Format Brotli Brotli で圧縮されたファイルは小さくなります。
データキャッシング 有効 キャッシュされたデータを後続の実行で再度ダウンロードする必要がなくなるため、実行速度が向上します (コンテンツが変更されていない場合)。
Debug Symbols Off デバッグシンボルを使用すると、アプリケーションが遅くなる場合があります。
Enable Exceptions なし オーバーヘッドのない例外については、代わりに Target WebAssembly 2023 を有効にします。
Target WebAssembly 2023 Enable Web Assembly 2023 機能セットには、プロジェクトの最適化をサポートする機能が含まれています。
Maximum Memory Size (MB) 必要なメモリの量を MB 単位で入力 Unity ウェブは、ビルドで最大 4096 MB のメモリをサポートします。

API Compatibility Level

API Compatibility Level 設定では、プロジェクトで使用できる .NET API を選択します。推奨される設定は .Net Standard 2.1 です。この設定は生成されるビルドのサイズが小さく、クロスプラットフォームをサポートしているためです。ただし、利用するプラットフォームが .Net Standard 2.1 を完全にサポートしているかどうかを確認する必要があります。その他のオプションについては、ウェブの Player 設定を参照してください。

API Compatibility Level の変更

設定ではなく、スクリプトで API Compatibility Level を変更するには、以下のコードをスクリプトのいずれかに追加します。

PlayerSettings.SetApiCompatibilityLevel(namedBuildTarget, ApiCompatibilityLevel.NET_2_0);

IL2CPP Code Generation

IL2CPP Code Generation 設定を使用して、Unity が IL2CPP コード生成をどのように管理するかを設定します (プロジェクトで IL2CPP スクリプティングバックエンドを使用している場合)。

推奨されるビルドオプションは Faster (smaller) です。このオプションでは、生成されるビルドのサイズが小さく、コード生成量が少なくなり、ビルド時間が短縮されるためです。ウェブアプリケーションでは、ビルド時間を短縮することが不可欠です。ただし、この設定ではランタイムパフォーマンスが低下する可能性があります。

詳細については、IL2CPP の概要 を参照してください。

C# による IL2CPP コード生成の変更

設定ではなく、スクリプトを使用してこの設定を有効にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.SetIl2CppCodeGeneration(namedBuildTarget,         
                                       Il2CppCodeGeneration.OptimizeSize);

Managed Stripping Level

Managed Stripping Level を使用して、Unity リンカープロセスが、プロジェクトで使用するマネージ DLL から未使用のコードを削除する量を設定できます。推奨される設定は High です。これは、ストリッピングコードによって実行ファイルのサイズが大幅に縮小できるためです。これはウェブアプリケーションにとって重要です。ただし、以下のようなデメリットも考えられます。

  • 一部のメソッドのマネージコードデバッグが機能しないことがあります。

  • カスタム link.xml ファイルの管理が必要な場合があります。

  • リフレクションコードパスの中には、同じ動作をしないものがあります。

詳細については、マネージコードストリッピング を参照してください。

C# によるマネージストリッピングレベルの変更

設定ではなく、スクリプトを使用してこの設定を変更にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.SetManagedStrippingLevel(namedBuildTarget,     
                                        ManagedStrippingLevel.High);    

Compression Format

リリースビルドファイルで使用する圧縮形式を選択します。Brotli は最も圧縮率が高く、Brotli 圧縮ファイルは gzip よりも小さいため、この設定が推奨されます。ウェブアプリケーションでは小さいファイルが適しています。ただし、Chrome と Firefox では、HTTPS 経由でウェブサイトへのアクセスが行われた場合のみ Brotli をサポートします。また、最近のほとんどのサーバーは Brotli をサポートしていますが、一部のサーバーではサポートしていません。対象のサーバーが Brotli をサポートしていることを確認してください。

圧縮形式の詳細については、ウェブアプリケーションのデプロイを参照してください。

C# スクリプトによる圧縮形式の変更

設定ではなく、スクリプトを使用してこの設定を有効にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Brotli;

Data caching

Data caching を有効にすると、コンテンツアセットデータがユーザーのマシンにキャッシュされます。データキャッシングを使用すると、アプリケーションの実行が高速になります。詳細については、ウェブのキャッシュ動作を参照してください。

C# スクリプトによるデータキャッシングの有効化

設定ではなく、スクリプトを使用してこの設定を有効にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.WebGL.dataCaching = true;

Debug Symbols

Debug Symbols 設定では、エラーが発生したときにデバッグシンボルが保持され、スタックトレースの最初の関数名が表示されるため、エラーの原因を特定しやすくなります。ビルドが不必要に大きくなったり、アプリケーションの処理速度が低下したりする可能性があるため、最終リリースビルドでは Debug Symbols を無効にすることをお勧めします。開発およびテスト中にこの設定を有効にすると、エラーの原因を特定しやすくなります。

C# スクリプトによるデバッグシンボルの無効化

設定ではなく、スクリプトを使用してこの設定を無効にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.WebGL.debugSymbolMode = WebGLDebugSymbolMode.Off;

Enable Exceptions

Enable Exceptions 設定では、ランタイムにエラーをどのように処理するかを選択できます。最終リリースビルドでは None オプションを選択することをお勧めします。この設定により、最高のパフォーマンスと最小のビルドが実現できるためです。

ただし、このオプションでは、例外がスローされるとコンテンツがエラーで停止するため、開発中とテスト中は、この例外の設定を有効にすることを推奨します。詳細については、ウェブの Player 設定 を参照してください。

C# スクリプトによる例外の無効化

設定ではなく、スクリプトを使用して例外を無効にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.WebGL.exceptionSupport = WebGLExceptionSupport.None;

Target WebAssembly 2023

WebAssembly 2023 は WebAssembly 言語機能の 1 つで、パフォーマンスの向上とコードサイズの縮小を実現します。この設定を有効にすることを推奨します。

C# スクリプトによる WebAssembly 2023 の有効化

設定ではなく、スクリプトを使用してこの設定を有効にするには、以下のコードをいずれかのスクリプトに追加します。

PlayerSettings.WebGL.wasm2023 = true;
// PlayerSettings.WebGL.webAssemblyTable = true;
// PlayerSettings.WebGL.webAssemblyBigInt = true;

WebAssembly 2023 を使用せずに WebAssembly.Table または BigInt の機能を有効にするには、コードの最初の行を削除して、コメント行を削除します。

Maximum Memory Size (MB)

Unity はビルドに対して最大 4096 MB のメモリをサポートします。ほとんどのアプリケーションでは、2048 MB のメモリで十分です。ただし、より複雑なリアルタイム 3D 体験、特にデスクトップブラウザーの場合は、メモリ容量が多いほど効果的です。メモリが多いほど、より充実した大容量のシーンをより動的にロードできます。

ただし、バージョン 119 より前の Firefox と Chrome のブラウザーでは、2048 MB を超えるビルドに対して既知のバグがあります。

C# スクリプトによる最大メモリの変更

設定ではなく、スクリプトを使用して最大メモリを変更するには、以下のコードをスクリプトに追加し、数値を適切なメモリサイズに変更します。

PlayerSettings.WebGL.maximumMemorySize = 4096; 

追加リソース

ウェブビルドの最適化に推奨される Graphics 設定
ウェブビルドの最適化に推奨される Quality Settings