1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UIElements;
-
- namespace UnityEditor.Searcher
- {
- [CustomEditor(typeof(SearcherExampleComponent))]
- class SearcherExampleComponentEditor : Editor
- {
- Rect m_ButtonRect;
-
- public override void OnInspectorGUI()
- {
- var root = new SearcherItem("Root");
- var children = new List<SearcherItem>();
- for (var i = 0; i < 10; ++i)
- children.Add(new SearcherItem("B-" + i));
-
- var child = new SearcherItem("Child","", children);
- root.AddChild(child);
-
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.PrefixLabel("Mouse Position");
- if (EditorGUILayout.DropdownButton(new GUIContent("Button"), FocusType.Passive, GUI.skin.button))
- {
- var editorWindow = EditorWindow.focusedWindow;
- var localMousePosition = Event.current.mousePosition;
- var worldMousePosition = editorWindow.rootVisualElement.LocalToWorld(localMousePosition);
-
- SearcherWindow.Show(
- editorWindow,
- new List<SearcherItem> { root },
- "Mouse Position",
- item => {
- Debug.Log("Searcher item selected: " + (item?.Name ?? "<none>"));
- return true;
- },
- worldMousePosition);
- }
- EditorGUILayout.EndHorizontal();
- }
-
- {
- EditorGUILayout.BeginHorizontal();
- EditorGUILayout.PrefixLabel("Button Center");
-
- var selected = EditorGUILayout.DropdownButton(new GUIContent("Button"), FocusType.Passive, GUI.skin.button);
- if (Event.current.type == EventType.Repaint)
- m_ButtonRect = GUILayoutUtility.GetLastRect();
-
- if (selected)
- {
- var editorWindow = EditorWindow.focusedWindow;
- var localButtonCenter = m_ButtonRect.center;
- var worldButtonCenter = editorWindow.rootVisualElement.LocalToWorld(localButtonCenter);
-
- SearcherWindow.Show(
- editorWindow,
- new List<SearcherItem> { root },
- "Button Center",
- item => {
- Debug.Log("Searcher item selected: " + (item?.Name ?? "<none>"));
- return true;
- },
- worldButtonCenter);
- }
-
- EditorGUILayout.EndHorizontal();
- }
- }
- }
- }
|