public static void DrawWindow(UdonGraph graph, UdonGraphGUI graphGUI)
        {
            if (_instance == null)
            {
                _instance = CreateInstance <UdonNodeSearchMenu>();
            }

            Rect rect      = GUILayoutUtility.GetLastRect();
            bool goodState = graphGUI.selection.Count == 0;

            if (goodState)
            {
                goodState = GUI.GetNameOfFocusedControl() != "NodeField";
            }

            if (goodState && KeyUpEvent(KeyCode.Space) && !Event.current.shift)
            {
                GUI.UnfocusWindow();
            }

            if (!GUILayout.Button("Add Node", EditorStyles.toolbarButton, GUILayout.Width(120)) && !(KeyUpEvent(KeyCode.Space) && goodState))
            {
                return;
            }

            rect = RemapRectForPopup(rect);
            _instance.InitWindow(graph, graphGUI, rect);
            _instance.Repaint();
        }
Esempio n. 2
0
 private void DrawNodeSearchBox()
 {
     UdonNodeSearchMenu.DrawWindow(graph, graphGUI);
 }