ABBuildHelper.ABPackRule.OnGUIRule C# (CSharp) Method

OnGUIRule() static private method

static private OnGUIRule ( ABBuildHelper.ABPackRuleConfig.Rule rule, bool selected ) : void
rule ABBuildHelper.ABPackRuleConfig.Rule
selected bool
return void
        void OnGUIRule(ABPackRuleConfig.Rule rule, bool selected)
        {
            ABPackRuleConfig config = AutoABNamePostprocessor.config;

            EditorGUILayout.BeginVertical(selected ? GUI.skin.button : GUI.skin.box);
            EditorGUILayout.BeginHorizontal();
            rule.path = EditorGUILayout.TextField("Path: ", rule.path);
            if (Event.current.type == EventType.DragUpdated && GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
            {
                if (DragAndDrop.objectReferences[0] is DefaultAsset)
                {
                    DragAndDrop.visualMode = DragAndDropVisualMode.Move;
                    DragAndDrop.AcceptDrag();
                    Event.current.Use();
                }
            }
            else if (Event.current.type == EventType.DragPerform && GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
            {
                rule.path = GetAssetPath(DragAndDrop.paths[0]);
                Event.current.Use();
                EditorUtility.SetDirty(config);
            }
            if (GUILayout.Button("Select", GUILayout.Width(100)))
            {
                string result = EditorUtility.OpenFolderPanel("", "选择目录", "");
                if (result != null)
                {
                    rule.path = GetAssetPath(result);
                    GUI.FocusControl(null);
                    EditorUtility.SetDirty(config);
                }
            }
            EditorGUILayout.EndHorizontal();
            if (!string.IsNullOrEmpty(rule.path))
            {
                rule.typeFilter = EditorGUILayout.TextField("TypeFilter: ", rule.typeFilter);
                if (Event.current.type == EventType.DragUpdated && GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
                {
                    DragAndDrop.visualMode = DragAndDropVisualMode.Move;
                    DragAndDrop.AcceptDrag();
                    Event.current.Use();
                }
                else if (Event.current.type == EventType.DragPerform && GUILayoutUtility.GetLastRect().Contains(Event.current.mousePosition))
                {
                    rule.typeFilter = string.Join(",", DragAndDrop.objectReferences.Select(x => x.GetType().Name).Distinct().ToArray());
                    Event.current.Use();
                    EditorUtility.SetDirty(config);
                }
                rule.ruleType = EditorGUILayout.Popup("Rule: ", rule.ruleType, AutoABNamePostprocessor.packRuleNames.ToArray());
            }
            EditorGUILayout.EndVertical();
        }