ExampleTreeViewPanel.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using UnityEditor;
  2. using UnityEngine;
  3. public class ExampleTreeViewPanel : EditorWindow
  4. {
  5. [MenuItem("TreeView/Show Example Panel")]
  6. public static void ShowExampleTreeViewPanel()
  7. {
  8. CreateTreeView();
  9. RefreshPanel();
  10. }
  11. static ExampleTreeViewPanel m_instance = null;
  12. public static ExampleTreeViewPanel GetPanel()
  13. {
  14. if (null == m_instance)
  15. {
  16. m_instance = EditorWindow.GetWindow<ExampleTreeViewPanel>(false, "TreeView Panel", false);
  17. }
  18. return m_instance;
  19. }
  20. public static void RefreshPanel()
  21. {
  22. ExampleTreeViewPanel panel = GetPanel();
  23. panel.Repaint();
  24. }
  25. static GameObject m_treeViewGO = null;
  26. static TreeViewControl m_treeViewControl = null;
  27. const string GO_NAME = "MyTreeViewPanel";
  28. static void CreateTreeView()
  29. {
  30. m_treeViewControl = TreeViewInspector.AddTreeView();
  31. m_treeViewControl.DisplayInInspector = false;
  32. m_treeViewControl.DisplayOnGame = false;
  33. m_treeViewControl.DisplayOnScene = false;
  34. Example.PopulateExampleData(m_treeViewControl);
  35. }
  36. void OnEnable()
  37. {
  38. wantsMouseMove = true;
  39. }
  40. void OnGUI()
  41. {
  42. if (null == m_treeViewControl)
  43. {
  44. return;
  45. }
  46. wantsMouseMove = true;
  47. if (null != Event.current &&
  48. Event.current.type == EventType.MouseMove)
  49. {
  50. Repaint();
  51. }
  52. m_treeViewControl.DisplayTreeView(TreeViewControl.DisplayTypes.USE_SCROLL_VIEW);
  53. }
  54. }