• Hello
Search Results for

    Show / Hide Table of Contents

    Obfuscation - Settings

    The first of the four settings tabs. You find here general settings for code obfuscation. This includes specifications for which assemblies are to be obfuscated, as well as detailed instructions for the obfuscation of their respective classes and members.

    Assembly - Settings

    Manage here the assemblies that should be obfuscated.

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

    You find the following settings:

    • Obfuscate Assembly-CSharp: Obfuscate the default Unity assembly Assembly-CSharp.dll. 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. Contains code that was not added to a sub assembly through an Assembly Definition File and can be found inside a Plugins directory.
    • Obfuscate Assembly Definition File in 'Assets': Obfuscate the code in sub-assemblies defined through Assembly Definition Files that can be found inside the [Root]/Assets directory and sub-directories.
    • Obfuscate Assembly Definition File in 'Packages': Obfuscate the code in sub-assemblies defined through Assembly Definition Files that can be found inside the [Root]/Packages directory and sub-directories.
    • Obfuscate external assemblies: If you only want to obfuscate specific assemblies or additionally third party assemblies, add those here.
    • Dependencies: If the Obfuscator fails to resolve a third party dependency, add the full path of its directory here.

    Namespace - Settings

    Manage here the obfuscation of namespaces and their classes.

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

    You find the following settings:

    • Obfuscate Namespaces: Obfuscate the namespaces of classes. This option is required to be enabled to obfuscate MonoBehaviours.
    • Skip following Namespaces: Add here namespaces you wish to ignore from obfuscation. This will skip all classes and their members from obfuscation inside these namespaces. The entered namespaces are considered as prefixes, so entering for example GoogleSdk will also skip GoogleSdk.Lib.
    • Vice Versa Namespaces Skipping: Reverses the namespace ignoring. When enabled, only classes and their members inside those namespaces will be obfuscated.

    Class - Settings

    Manage here the obfuscation of classes.

    Figure 3 - Manage here the obfuscation of classes.

    You find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate class names based on their accessibility.
    • Obfuscate Abstract Classes: Obfuscate the name of abstract classes.
    • Obfuscate Generic Classes: Obfuscate the name of generic classes.
    • Obfuscate Serializeable Classes: Obfuscate the name of serializeable classes and their fields. Only recommended if data is serialized at runtime and after obfuscation. Else the names inside the serialized class will not match and generate errors.
    • Obfuscate MonoBehaviour Sub-Classes: Obfuscate the name of MonoBehaviour classes. Requires the obfuscation of namespaces.
    • Obfuscate MonoBehaviour Sub-Classes in external Assemblies: Obfuscate the name of MonoBehaviour classes in third-party or pre-compiled assemblies. Requires the obfuscation of namespaces.
    • Obfuscate ScriptableObject Sub-Classes: Obfuscate the name of ScriptableObject classes and their fields. Only recommended if you do not serialize ScriptableObjects into .assets files or assigning values through the Unity Inspector. Else the names of saved and obfuscated data will not match and generate errors.
    • Obfuscate Playable Sub-Classes: Obfuscate the name of Playable classes.

    Method - Settings

    Manage here the obfuscation of methods.

    Figure 4 - Manage here the obfuscation of methods.

    You find the following settings:

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

    Parameter - Settings

    Manage here the obfuscation of parameter.

    Figure 5 - Manage here the obfuscation of parameter.

    You find the following settings:

    • Obfuscate Method Parameter: Obfuscate generic method parameter. Normal parameter have no 'name' inside build code, just id's, so obfuscation is not required or possible.
    • Obfuscate Class Parameter: Obfuscate generic class parameter.

    Field - Settings

    Manage here the obfuscation of fields.

    Figure 6 - Manage here the obfuscation of fields.

    You find the following settings:

    • Obfuscate (Internal/Private/Protected/Public): Obfuscate field names based on their accessibility.
    • Obfuscate Serializeable Fields: Obfuscate the name of serializeable fields in 'MonoBehaviour/ScriptableObject' classes. Those are fields with the 'SerializeField' attribute. Only recommended if data is serialized at runtime and after obfuscation and not assigned through the Unity Inspector. Else the names inside the serialized class will not match and generate errors.
    • Obfuscate Unity Public Fields: Obfuscate the name of public fields in 'MonoBehaviour/ScriptableObject' classes. Only recommended if data is serialized at runtime and after obfuscation and not assigned through the Unity Inspector. Else the names inside the serialized class will not match and generate errors.
    • Obfuscate Enum Values: Obfuscate the name of fields inside enums.

    Property - Settings

    Manage here the obfuscation of properties.

    Figure 7 - Manage here the obfuscation of properties.

    You find the following settings:

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

    Event - Settings

    Manage here the obfuscation of events.

    Figure 8 - Manage here the obfuscation of events.

    You find the following settings:

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