You can use code to enable some optimizations recommended in Optimize your WebGL build. If you use code to configure these settings it can save you time having to manually set each of them individually.
Note: This script only works in Unity Editor, not in builds.
To use code to enable most of these optimizations at once in your Unity project settingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info
See in Glossary:
Create an Assets/Editor
folder if you don’t already have one.
Create an empty C# script in the Editor
folder.
Paste the following code into the script:
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;
// Set Platform Settings to optimize for disk size (LTO)
UnityEditor.WebGL.UserBuildSettings.codeOptimization = UnityEditor.WebGL.WasmCodeOptimization.DiskSizeLTO;
}
}
Change the script to suit your project.
From the toolbar, select Example > Optimize to run the script. Your settings update.