unity 简单TreeView

2020-03-30  本文已影响0人  RichMartin
屏幕快照 2020-03-30 11.14.06.png
using UnityEngine;
using UnityEditor.IMGUI.Controls;
using System.Collections.Generic;

namespace UnityEditor.TreeViewExamples
{
    class SimpleTreeViewWindow : EditorWindow
    {
        [SerializeField] TreeViewState m_TreeViewState;

        SimpleTreeView m_TreeView;
        SearchField m_SearchField;

        void OnEnable ()
        {
            if (m_TreeViewState == null)
                m_TreeViewState = new TreeViewState ();

            m_TreeView = new SimpleTreeView(m_TreeViewState);
            m_SearchField = new SearchField ();
            m_SearchField.downOrUpArrowKeyPressed += m_TreeView.SetFocusAndEnsureSelectedItem;
        }

        void OnGUI ()
        {
            DoToolbar ();
            DoTreeView ();
        }

        void DoToolbar()
        {
            GUILayout.BeginHorizontal (EditorStyles.toolbar);
            GUILayout.Space (100);
            GUILayout.FlexibleSpace();
            m_TreeView.searchString = m_SearchField.OnToolbarGUI (m_TreeView.searchString);
            GUILayout.EndHorizontal();
        }

        void DoTreeView()
        {
            Rect rect = GUILayoutUtility.GetRect(0, 100000, 0, 100000);
            m_TreeView.OnGUI(rect);
        }

        [MenuItem ("TreeView Examples/Simple Tree Window")]
        static void ShowWindow ()
        {
            var window = GetWindow<SimpleTreeViewWindow> ();
            window.titleContent = new GUIContent ("My Window");
            window.Show ();
        }
    }

    class SimpleTreeView : TreeView
    {
        public SimpleTreeView(TreeViewState treeViewState)
            : base(treeViewState)
        {
            Reload();
        }

        protected override TreeViewItem BuildRoot()
        {
            var root = new TreeViewItem { id = 0, depth = -1, displayName = "Root" };
            var allItems = new List<TreeViewItem>
            {
                new TreeViewItem {id = 1, depth = 0, displayName = "动物"},
                new TreeViewItem {id = 2, depth = 1, displayName = "哺乳动物"},
                new TreeViewItem {id = 3, depth = 2, displayName = "老虎"},
                new TreeViewItem {id = 4, depth = 2, displayName = "大大象"},
                new TreeViewItem {id = 5, depth = 2, displayName = "鹿"},
                new TreeViewItem {id = 6, depth = 2, displayName = "aaa"},
                new TreeViewItem {id = 7, depth = 1, displayName = "bbb"},
                new TreeViewItem {id = 8, depth = 2, displayName = "ccc"},
                new TreeViewItem {id = 9, depth = 2, displayName = "ddd"},
            };

            SetupParentsAndChildrenFromDepths(root, allItems);
            return root;
        }
    }
}

```![屏幕快照 2020-03-30 11.14.06.png](https://img.haomeiwen.com/i2897759/a6539d26e7c15281.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
上一篇 下一篇

猜你喜欢

热点阅读