private void OnGUI() { ABPackRuleConfig config = AutoABNamePostprocessor.config; EditorGUILayout.BeginHorizontal(GUI.skin.box); AutoABNamePostprocessor.autoPack = EditorGUILayout.ToggleLeft("autoPack", AutoABNamePostprocessor.autoPack); if (GUILayout.Button("Apply")) { AutoABNamePostprocessor.PackAll(); } EditorGUILayout.EndHorizontal(); scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition); int count = config.rules.Count; EditorGUI.BeginChangeCheck(); for (int i = 0; i < count; i++) { OnGUIRule(config.rules[i], selectIndex == i); if (Event.current.type == EventType.MouseUp && GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition)) { selectIndex = i; Event.current.Use(); } } if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(config); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Add Rule")) { config.rules.Add(new ABPackRuleConfig.Rule()); EditorUtility.SetDirty(config); } if (count > 0 && selectIndex >= 0 && GUILayout.Button("Remove Rule")) { config.rules.RemoveAt(selectIndex); selectIndex = -1; EditorUtility.SetDirty(config); } EditorGUILayout.EndHorizontal(); EditorGUILayout.EndScrollView(); }