示例#1
0
        public override VisualElement Build()
        {
            var typeField = Assets.LoadVisualTreeAsset(nameof(TypeInspector <T>)).CloneTree();

            var label = typeField.Q <Label>("label");

            label.text = DisplayName;

            var input = typeField.Q <VisualElement>("input");

            input.RegisterCallback <MouseUpEvent>(mouseUpEvent =>
            {
                var database  = TypeSearcherDatabase.Populate <T>(TypeFilter, TypeNameResolver, TypeCategoryResolver);
                var searcher  = new Searcher(database, new AddTypeSearcherAdapter(SearcherTitle));
                var position  = input.worldBound.min + Vector2.up * (input.worldBound.height + 19f);
                var alignment = new SearcherWindow.Alignment(SearcherWindow.Alignment.Vertical.Top, SearcherWindow.Alignment.Horizontal.Left);
                SearcherWindow.Show(EditorWindow.focusedWindow, searcher, OnTypeSelected, position, null);
            });

            var type = Target?.GetType();

            if (type != null)
            {
                m_Text      = typeField.Q <TextElement>("text");
                m_Text.text = TypeNameResolver?.Invoke(type) ?? type.Name;
            }

            return(typeField);
        }
示例#2
0
        public override VisualElement Build()
        {
            var typeField = Assets.LoadVisualTreeAsset(nameof(TypeInspector <T>)).CloneTree();

            typeField.AddStyleSheetAndVariant(nameof(TypeInspector <T>));

            var label = typeField.Q <Label>("label");

            label.text = DisplayName;

            var input = typeField.Q <VisualElement>("input");

            input.RegisterCallback <MouseUpEvent>(mouseUpEvent =>
            {
                var database  = TypeSearcherDatabase.Populate <T>(TypeFilter, TypeNameResolver, TypeCategoryResolver);
                var searcher  = new Searcher(database, new AddTypeSearcherAdapter(SearcherTitle));
                var position  = input.worldBound.min + Vector2.up * (input.worldBound.height + 19f);
                var alignment = new SearcherWindow.Alignment(SearcherWindow.Alignment.Vertical.Top, SearcherWindow.Alignment.Horizontal.Left);
                SearcherWindow.Show(EditorWindow.focusedWindow, searcher, OnTypeSelected, position, null);
            });

            m_HelpBox = typeField.Q <VisualElement>("helpbox");

            var icon = m_HelpBox.Q <Image>("icon");

            icon.image     = EditorGUIUtility.IconContent("d_console.erroricon.sml").image;
            icon.scaleMode = ScaleMode.ScaleToFit;

            m_Message = m_HelpBox.Q <Label>("message");
            if (!string.IsNullOrEmpty(ErrorMessage))
            {
                m_HelpBox.style.display = DisplayStyle.Flex;
                m_Message.text          = ErrorMessage;
            }
            else
            {
                m_HelpBox.style.display = DisplayStyle.None;
                m_Message.text          = string.Empty;
            }

            var type = Target?.GetType();

            if (type != null)
            {
                m_Text      = typeField.Q <TextElement>("text");
                m_Text.text = TypeNameResolver?.Invoke(type) ?? type.Name;
            }

            return(typeField);
        }