# C# コードによる最適化設定の有効化

> Use a C# script to enable some optimization settings.

コードを使用して、[ウェブビルドの最適化](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization.md) で推奨される最適化の一部を有効にできます。コードを使用してこれらの設定を構成する場合は、それぞれを手動で設定しなくて済むため、時間を節約できます。

**ノート**: このスクリプトは Unity エディターでのみ機能し、ビルドでは機能しません。

## ウェブビルドを最適化するための C# スクリプトの作成##create-a-c-script-to-optimize-your-web-build

コードを使用して Unity プロジェクト設定でこれらの最適化のほとんどを一度に有効にするには、以下を行います。

1. `Assets/Editor` フォルダーをまだ作成していない場合は作成します。

2. `Editor` フォルダーに空の C# スクリプトを作成します。

3. 以下のコードをコピーしてスクリプト内に貼り付けます。

   ```lang-cs
   using UnityEditor;
   using UnityEditor.Build;
   using UnityEngine;

   public class WebOptimizer
   {
       [MenuItem("Example/Optimize")]
       public static void Optimize()
       {
           var namedBuildTarget = NamedBuildTarget.WebGL;
           var buildOptions = BuildOptions.CompressWithLz4HC;

           // Set IL2CPP code generation to Optimize Size 
           PlayerSettings.SetIl2CppCodeGeneration(namedBuildTarget,         
                                           Il2CppCodeGeneration.OptimizeSize);

           // Set the Managed Stripping Level to High
           PlayerSettings.SetManagedStrippingLevel(namedBuildTarget,     
                                               ManagedStrippingLevel.High);  

           // Strip unused mesh components           
           PlayerSettings.stripUnusedMeshComponents = true;

           // Enable data caching
           PlayerSettings.WebGL.dataCaching = true;

           // Set the compression format to Brotli
           PlayerSettings.WebGL.compressionFormat = WebGLCompressionFormat.Brotli;

           // Deactivate exceptions
           PlayerSettings.WebGL.exceptionSupport = WebGLExceptionSupport.None;

           // Deactivate debug symbols
           PlayerSettings.WebGL.debugSymbolMode = WebGLDebugSymbolMode.Off;

           //Enable WebAssembly 2023 features
           PlayerSettings.WebGL.wasm2023 = true;           

           // Set Platform Settings to optimize for disk size (LTO)
           UnityEditor.WebGL.UserBuildSettings.codeOptimization = UnityEditor.WebGL.WasmCodeOptimization.DiskSizeLTO;
       }
   }
   ```

4. プロジェクトに合わせてスクリプトを変更します。

5. ツールバーから、**Example** > **Optimize** を選択してスクリプトを実行します。設定が更新されます。

Asset Import Overrides の設定を変更するには、[ビルドプロファイルのリファレンス](/engine/6000.0/manual/unity-editor/editor-features/build-settings/build-profiles-reference.md#AssetImportOverride) を参照してください。

## 追加リソース##additional-resources

* [ウェブビルドの最適化](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization.md)

* [ウェブビルドの最適化に推奨される Graphics 設定](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization/graphics.md)

* [ウェブビルドの最適化に推奨される Player 設定](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization/player.md)

* [ウェブビルドの最適化に推奨される Quality 設定](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization/quality.md)

* [ウェブビルドから未使用のリソースを削除する](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization/remove-resources.md)

* [モバイル向けウェブプラットフォームの最適化](/engine/6000.0/manual/platform-specific/webgl/building-distribution/web-optimization-mobile.md)
