ISupportsOverlays
интерфейс в UnityEditor.Overlays
Описание
Реализуйте этот интерфейс, чтобы включить оверлеи в EditorWindow.
При реализации ISupportsOverlays, Оверлей Canvas автоматически добавляется в дерево VisualElement для вашего EditorWindow. OverlayAttribute теперь смогут указать этот тип окна как действительную цель для регистрации Overlay.
using System; using UnityEditor; using UnityEditor.Overlays; using UnityEngine; using UnityEngine.UIElements; class EditorWindowOverlayExample : EditorWindow, ISupportsOverlays { [MenuItem("Window/Overlay Supported Window Example")] static void Init() => GetWindow<EditorWindowOverlayExample>(); void OnGUI() { GUILayout.Label("Here is some text"); GUILayout.FlexibleSpace(); GUILayout.Label("Plus some more text, but on the bottom of the screen."); } } [Overlay(typeof(EditorWindowOverlayExample), "Is Mouse Hovering Me?", true)] class IsMouseHoveringMe : Overlay { Label m_MouseLabel; public override VisualElement CreatePanelContent() { m_MouseLabel = new Label(); m_MouseLabel.style.minHeight = 40; m_MouseLabel.RegisterCallback<MouseEnterEvent>(evt => m_MouseLabel.text = "Mouse is hovering this Overlay content!"); m_MouseLabel.RegisterCallback<MouseLeaveEvent>(evt => m_MouseLabel.text = "Mouse is not hovering this Overlay content."); return m_MouseLabel; } }