Пример #1
0
        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();
        }