ManagedStrippingLevel
Defines how aggressively Unity strips unused managed (C#) code.
Read time 1 minuteLast updated 4 days ago
Definition
- Type: Enum
- Namespace: UnityEditor
- Assembly: UnityEditor.CoreModule
public enum ManagedStrippingLevel
Remarks
When Unity builds your game or application it can strip unused code from the managed dynamically linked libraries used in the project. Stripping code can make the resulting executable significantly smaller, but can sometimes mistakenly remove code that is actually used. The ManagedStrippingLevel Enum defines the options you can use when specifying how aggressively Unity should remove unused code.
Additional Resources: PlayerSettings.GetManagedStrippingLevel, PlayerSettings.SetManagedStrippingLevel
Fields
Value | Description |
|---|---|
| Disabled | Do not strip any code. |
| High | UnityLinker will strip as much as possible. This will further reduce code size beyond what Medium can achieve. However, this additional reduction may come with tradeoffs. Possible side effects may include, managed code debugging of some methods may no longer work. You may need to maintain a custom link.xml file, and some reflection code paths may not behave the same. |
| Low | Remove unreachable managed code to reduce build size and Mono/IL2CPP build times. |
| Medium | Run UnityLinker in a less conservative mode than Low. This will further reduce code size beyond what Low can achieve. However, this additional reduction may come with tradeoffs. Possible side effects may include, having to maintain a custom link.xml file, and some reflection code paths may not behave the same. |
| Minimal | The class libraries, UnityEngine, and Windows Runtime assemblies will be stripped. All other assemblies are copied. |