public static void Window(GUIContent title, int order, Object target, WindowDisplayOption option, Action <SceneView> onGUICallback) { if (Event.current.type != EventType.Layout) { return; } foreach (OverlayWindow currentWindow in windows) { if (option == WindowDisplayOption.OneWindowPerTarget && currentWindow.Target == target && target != null) { return; } } OverlayWindow overlayWindow = new OverlayWindow(title, order, target, option, onGUICallback) { SecondaryOrder = windows.Count, CanCollapse = false }; windows.Add(overlayWindow); }
// pass window parameter to render in sceneviews that are not the active view. public static void Window(GUIContent title, WindowFunction sceneViewFunc, int order, Object target, WindowDisplayOption option, EditorWindow window = null) { if (Event.current.type != EventType.Layout) { return; } foreach (OverlayWindow overlayWindow in m_Windows) { if (option == WindowDisplayOption.OneWindowPerTarget && overlayWindow.m_Target == target && target != null) { return; } if (option == WindowDisplayOption.OneWindowPerTitle && (overlayWindow.m_Title == title || overlayWindow.m_Title.text == title.text)) { return; } } OverlayWindow newWindow = new OverlayWindow(); newWindow.m_Title = title; newWindow.m_SceneViewFunc = sceneViewFunc; newWindow.m_PrimaryOrder = order; newWindow.m_SecondaryOrder = m_Windows.Count; // just use a value that is unique across overlays newWindow.m_Target = target; newWindow.m_EditorWindow = window; m_Windows.Add(newWindow); }
public static void Window(GUIContent title, WindowFunction sceneViewFunc, int order, WindowDisplayOption option) { Window(title, sceneViewFunc, order, null, option); }
// pass window parameter to render in sceneviews that are not the active view. public static void Window(GUIContent title, WindowFunction sceneViewFunc, int order, Object target, WindowDisplayOption option, EditorWindow window = null) { if (Event.current.type != EventType.Layout) { return; } foreach (var overlayWindow in s_Windows) { if (option == WindowDisplayOption.OneWindowPerTarget && overlayWindow.target == target && target != null) { return; } if (option == WindowDisplayOption.OneWindowPerTitle && (overlayWindow.title == title || overlayWindow.title.text == title.text)) { return; } } var newWindow = new OverlayWindow(title, sceneViewFunc, order, target, option) { secondaryOrder = s_Windows.Count, canCollapse = false }; s_Windows.Add(newWindow); }
// pass window parameter to render in sceneviews that are not the active view. public static void Window(GUIContent title, WindowFunction sceneViewFunc, int order, Object target, WindowDisplayOption option, EditorWindow window = null) { if (Event.current.type != EventType.Layout) { return; } ShowWindow(new OverlayWindow(title, sceneViewFunc, order, target, option)); }
public static void Window(GUIContent title, WindowFunction sceneViewFunc, int order, Object target, WindowDisplayOption option) { if (Event.current.type == EventType.Layout) { foreach (OverlayWindow window in m_Windows) { if ((((option == WindowDisplayOption.OneWindowPerTarget) && (window.m_Target == target)) && (target != null)) || ((option == WindowDisplayOption.OneWindowPerTitle) && ((window.m_Title == title) || (window.m_Title.text == title.text)))) { return; } } OverlayWindow item = new OverlayWindow { m_Title = title, m_SceneViewFunc = sceneViewFunc, m_PrimaryOrder = order, m_SecondaryOrder = m_Windows.Count, m_Target = target }; m_Windows.Add(item); } }