From c143f6b7e6acfed7664f3637e82343cb51fee6bf Mon Sep 17 00:00:00 2001 From: walon Date: Tue, 29 Sep 2026 12:08:04 +0800 Subject: [PATCH] refactor: ObfuzSettingsProvider draws all fields by reflection --- Editor/Settings/ObfuzSettingsProvider.cs | 79 +++++------------------- 1 file changed, 15 insertions(+), 64 deletions(-) diff --git a/Editor/Settings/ObfuzSettingsProvider.cs b/Editor/Settings/ObfuzSettingsProvider.cs index d92826d..04b895a 100644 --- a/Editor/Settings/ObfuzSettingsProvider.cs +++ b/Editor/Settings/ObfuzSettingsProvider.cs @@ -44,27 +44,6 @@ namespace Obfuz.Settings private SerializedObject _serializedObject; - private SerializedProperty _buildPipelineSettings; - private SerializedProperty _compatibilitySettings; - - private SerializedProperty _assemblySettings; - private SerializedProperty _obfuscationPassSettings; - private SerializedProperty _secretSettings; - private SerializedProperty _encryptionVMSettings; - - private SerializedProperty _symbolObfusSettings; - private SerializedProperty _constEncryptSettings; - private SerializedProperty _removeConstFieldSettings; - private SerializedProperty _evalStackObfusSettings; - private SerializedProperty _fieldEncryptSettings; - private SerializedProperty _callObfusSettings; - private SerializedProperty _exprObfusSettings; - private SerializedProperty _controlFlowObfusSettings; - - private SerializedProperty _garbageCodeGenerationSettings; - private SerializedProperty _watermarkSettings; - - private SerializedProperty _polymorphicDllSettings; public ObfuzSettingsProvider() : base("Project/Obfuz", SettingsScope.Project) { @@ -86,28 +65,6 @@ namespace Obfuz.Settings var setting = ObfuzSettings.Instance; _serializedObject?.Dispose(); _serializedObject = new SerializedObject(setting); - _buildPipelineSettings = _serializedObject.FindProperty("buildPipelineSettings"); - _compatibilitySettings = _serializedObject.FindProperty("compatibilitySettings"); - - _assemblySettings = _serializedObject.FindProperty("assemblySettings"); - _obfuscationPassSettings = _serializedObject.FindProperty("obfuscationPassSettings"); - _secretSettings = _serializedObject.FindProperty("secretSettings"); - - _encryptionVMSettings = _serializedObject.FindProperty("encryptionVMSettings"); - - _symbolObfusSettings = _serializedObject.FindProperty("symbolObfusSettings"); - _constEncryptSettings = _serializedObject.FindProperty("constEncryptSettings"); - _removeConstFieldSettings = _serializedObject.FindProperty("removeConstFieldSettings"); - _evalStackObfusSettings = _serializedObject.FindProperty("evalStackObfusSettings"); - _exprObfusSettings = _serializedObject.FindProperty("exprObfusSettings"); - _fieldEncryptSettings = _serializedObject.FindProperty("fieldEncryptSettings"); - _callObfusSettings = _serializedObject.FindProperty("callObfusSettings"); - _controlFlowObfusSettings = _serializedObject.FindProperty("controlFlowObfusSettings"); - - _garbageCodeGenerationSettings = _serializedObject.FindProperty("garbageCodeGenerationSettings"); - _watermarkSettings = _serializedObject.FindProperty("watermarkSettings"); - - _polymorphicDllSettings = _serializedObject.FindProperty("polymorphicDllSettings"); } public override void OnGUI(string searchContext) @@ -119,28 +76,22 @@ namespace Obfuz.Settings _serializedObject.Update(); EditorGUI.BeginChangeCheck(); - EditorGUILayout.PropertyField(_buildPipelineSettings); - EditorGUILayout.PropertyField(_compatibilitySettings); + using (var prop = _serializedObject.GetIterator()) + { + if (prop.NextVisible(true)) + { + do + { + if (prop.name == "m_Script") + { + continue; + } - EditorGUILayout.PropertyField(_assemblySettings); - EditorGUILayout.PropertyField(_obfuscationPassSettings); - EditorGUILayout.PropertyField(_secretSettings); - - EditorGUILayout.PropertyField(_encryptionVMSettings); - - EditorGUILayout.PropertyField(_symbolObfusSettings); - EditorGUILayout.PropertyField(_constEncryptSettings); - EditorGUILayout.PropertyField(_removeConstFieldSettings); - EditorGUILayout.PropertyField(_evalStackObfusSettings); - EditorGUILayout.PropertyField(_exprObfusSettings); - EditorGUILayout.PropertyField(_fieldEncryptSettings); - EditorGUILayout.PropertyField(_callObfusSettings); - EditorGUILayout.PropertyField(_controlFlowObfusSettings); - - EditorGUILayout.PropertyField(_garbageCodeGenerationSettings); - EditorGUILayout.PropertyField(_watermarkSettings); - - EditorGUILayout.PropertyField(_polymorphicDllSettings); + EditorGUILayout.PropertyField(prop, true); + } + while (prop.NextVisible(false)); + } + } if (EditorGUI.EndChangeCheck()) {