diff --git a/Editor/Settings/BuildPipelineSettings.cs b/Editor/Settings/BuildPipelineSettings.cs new file mode 100644 index 0000000..67777aa --- /dev/null +++ b/Editor/Settings/BuildPipelineSettings.cs @@ -0,0 +1,15 @@ +using System; +using UnityEngine; + +namespace Obfuz.Settings +{ + [Serializable] + public class BuildPipelineSettings + { + [Tooltip("callback order of LinkXmlProcessor")] + public int linkXmlProcessCallbackOrder = 10000; + + [Tooltip("callback order of ObfuscationProcess")] + public int obfuscationProcessCallbackOrder = 10000; + } +} diff --git a/Editor/Settings/BuildPipelineSettings.cs.meta b/Editor/Settings/BuildPipelineSettings.cs.meta new file mode 100644 index 0000000..64ce1dd --- /dev/null +++ b/Editor/Settings/BuildPipelineSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 68737b215ecfe344a93d56007e186432 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Settings/ObfuzSettings.cs b/Editor/Settings/ObfuzSettings.cs index ed4d0d9..1169c0f 100644 --- a/Editor/Settings/ObfuzSettings.cs +++ b/Editor/Settings/ObfuzSettings.cs @@ -5,11 +5,15 @@ using UnityEngine; namespace Obfuz.Settings { + public class ObfuzSettings : ScriptableObject { [Tooltip("enable Obfuz")] public bool enable = true; + [Tooltip("build pipeline settings")] + public BuildPipelineSettings buildPipelineSettings; + [Tooltip("assembly settings")] public AssemblySettings assemblySettings; diff --git a/Editor/Settings/ObfuzSettingsProvider.cs b/Editor/Settings/ObfuzSettingsProvider.cs index 9e78bc0..2c75757 100644 --- a/Editor/Settings/ObfuzSettingsProvider.cs +++ b/Editor/Settings/ObfuzSettingsProvider.cs @@ -25,6 +25,8 @@ namespace Obfuz.Settings private SerializedObject _serializedObject; private SerializedProperty _enable; + private SerializedProperty _buildPipelineSettings; + private SerializedProperty _assemblySettings; private SerializedProperty _obfuscationPassSettings; private SerializedProperty _secretSettings; @@ -61,6 +63,8 @@ namespace Obfuz.Settings _serializedObject?.Dispose(); _serializedObject = new SerializedObject(setting); _enable = _serializedObject.FindProperty("enable"); + _buildPipelineSettings = _serializedObject.FindProperty("buildPipelineSettings"); + _assemblySettings = _serializedObject.FindProperty("assemblySettings"); _obfuscationPassSettings = _serializedObject.FindProperty("obfuscationPassSettings"); _secretSettings = _serializedObject.FindProperty("secretSettings"); @@ -88,6 +92,8 @@ namespace Obfuz.Settings EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(_enable); + EditorGUILayout.PropertyField(_buildPipelineSettings); + EditorGUILayout.PropertyField(_assemblySettings); EditorGUILayout.PropertyField(_obfuscationPassSettings); EditorGUILayout.PropertyField(_secretSettings); diff --git a/Editor/Unity/LinkXmlProcess.cs b/Editor/Unity/LinkXmlProcess.cs index 729f510..c7e3ed5 100644 --- a/Editor/Unity/LinkXmlProcess.cs +++ b/Editor/Unity/LinkXmlProcess.cs @@ -16,7 +16,7 @@ namespace Obfuz.Unity { public class LinkXmlProcess : IUnityLinkerProcessor { - public int callbackOrder => 10000; + public int callbackOrder => ObfuzSettings.Instance.buildPipelineSettings.linkXmlProcessCallbackOrder; public string GenerateAdditionalLinkXmlFile(BuildReport report, UnityLinkerBuildPipelineData data) { diff --git a/Editor/Unity/ObfuscationProcess.cs b/Editor/Unity/ObfuscationProcess.cs index 6b67a1f..b3e375d 100644 --- a/Editor/Unity/ObfuscationProcess.cs +++ b/Editor/Unity/ObfuscationProcess.cs @@ -16,7 +16,7 @@ namespace Obfuz.Unity #if UNITY_2019_1_OR_NEWER public class ObfuscationProcess : IPostBuildPlayerScriptDLLs { - public int callbackOrder => 10000; + public int callbackOrder => ObfuzSettings.Instance.buildPipelineSettings.obfuscationProcessCallbackOrder; public static event Action OnObfuscationBegin;