• Hello
Search Results for

    Show / Hide Table of Contents

    Obfuscation - Settings

    The first of the four settings tabs. Here you'll find general settings for code obfuscation, including which assemblies should be obfuscated, as well as detailed options for obfuscating their classes and members.

    Assembly - Settings

    Manage which assemblies should be obfuscated.

    Figure 1 - Manage here the assemblies that should be obfuscated.

    You'll find the following settings:

    • Obfuscate Assembly-CSharp: Obfuscate the default Unity assembly Assembly-CSharp.dll. It contains code that was not added to a sub-assembly through an Assembly Definition File.
    • Obfuscate Assembly-CSharp-firstpass: Obfuscate the default Unity plugins assembly Assembly-CSharp-firstpass.dll. It contains code that was not added to a sub-assembly through an Assembly Definition File and lives inside a Plugins directory.
    • Obfuscate Assembly Definition File in 'Assets': Obfuscate the code in sub-assemblies defined through Assembly Definition Files located in the [Root]/Assets directory and its sub-directories.
    • Obfuscate Assembly Definition File in 'Packages': Obfuscate the code in sub-assemblies defined through Assembly Definition Files located in the [Root]/Packages directory and its sub-directories.
    • Obfuscate external assemblies: If you only want to obfuscate specific assemblies, or also include third-party assemblies, add them here.
    • Dependencies: If the Obfuscator fails to resolve a third-party dependency, add the full path of its directory here.

    Namespace - Settings

    Manage the obfuscation of namespaces and their classes.

    Figure 2 - Manage here the obfuscation of namespaces and their classes.

    You'll find the following settings:

    • Obfuscate Namespaces: Obfuscate the namespaces of classes. This option must be enabled to obfuscate MonoBehaviours.
    • Skip following Namespaces: Add namespaces you want to exclude from obfuscation. All classes and members inside these namespaces will be skipped. Entries are treated as prefixes, so entering GoogleSdk will also skip GoogleSdk.Lib.
    • Vice Versa Namespaces Skipping: Reverses the namespace skipping. When enabled, only classes and their members inside the listed namespaces will be obfuscated.

    Class - Settings

    Manage the obfuscation of classes.

    Figure 3 - Manage here the obfuscation of classes.

    You'll find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate class names based on their accessibility.
    • Obfuscate Abstract Classes: Obfuscate the names of abstract classes.
    • Obfuscate Generic Classes: Obfuscate the names of generic classes.
    • Obfuscate Serializable Classes: Obfuscate the names of serializable classes and their fields. Only recommended if data is serialized at runtime and after obfuscation. Otherwise the names inside the serialized class will no longer match, causing errors.
    • Obfuscate MonoBehaviour Sub-Classes: Obfuscate the names of MonoBehaviour classes. Requires namespace obfuscation to be enabled.
    • Obfuscate MonoBehaviour Sub-Classes in external Assemblies: Obfuscate the names of MonoBehaviour classes in third-party or pre-compiled assemblies. Requires namespace obfuscation to be enabled.
    • Obfuscate ScriptableObject Sub-Classes: Obfuscate the names of ScriptableObject classes and their fields. Only recommended if you do not serialize ScriptableObjects into .asset files or assign values through the Unity Inspector. Otherwise the names of saved and obfuscated data will no longer match, causing errors.
    • Obfuscate Playable Sub-Classes: Obfuscate the names of Playable classes.

    Method - Settings

    Manage the obfuscation of methods.

    Figure 4 - Manage here the obfuscation of methods.

    You'll find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate method names based on their accessibility.

    Parameter - Settings

    Manage the obfuscation of parameters.

    Figure 5 - Manage here the obfuscation of parameter.

    You'll find the following settings:

    • Obfuscate Method Parameter: Obfuscate generic method parameters. Regular parameters have no 'name' in built code – only IDs – so obfuscation is neither required nor possible.
    • Obfuscate Class Parameter: Obfuscate generic class parameters.

    Field - Settings

    Manage the obfuscation of fields.

    Figure 6 - Manage here the obfuscation of fields.

    You'll find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate field names based on their accessibility.
    • Obfuscate Serializable Fields: Obfuscate the names of serializable fields in 'MonoBehaviour/ScriptableObject' classes – those marked with the 'SerializeField' attribute. Only recommended if data is serialized at runtime and after obfuscation, and is not assigned through the Unity Inspector. Otherwise the names inside the serialized class will no longer match, causing errors.
    • Obfuscate Unity Public Fields: Obfuscate the names of public fields in 'MonoBehaviour/ScriptableObject' classes. Only recommended if data is serialized at runtime and after obfuscation, and is not assigned through the Unity Inspector. Otherwise the names inside the serialized class will no longer match, causing errors.
    • Obfuscate Enum Values: Obfuscate the names of fields inside enums.

    Property - Settings

    Manage the obfuscation of properties.

    Figure 7 - Manage here the obfuscation of properties.

    You'll find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate property names based on their accessibility.

    Event - Settings

    Manage the obfuscation of events.

    Figure 8 - Manage here the obfuscation of events.

    You'll find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate event names based on their accessibility.
    In This Article
    Back to top GuardingPearSoftware documentation