Unity 6.3
0 онлайн 67 гостей 3 в системе
Вход

ISupportsOverlaysWithFilter

интерфейс в UnityEditor.Overlays


Интерфейсы приспособлений:ISupportsOverlays

Описание

Интерфейс для включения и фильтрации определенных накладок в EditorWindow.

При реализации ISupportsOverlaysWithFilter в дерево VisualElement для вашего EditorWindowавтоматически добавляется накладка Canvas. Используйте OverlayAttribute для указания этого типа окна в качестве действительного объекта для регистрации Overlay.

ISupportsOverlaysWithFilter.IsOverlaySupported можно указать, какая накладка разрешена в этом конкретном окне из накладок, зарегистрированных с OverlayAttribute.

Дополнительные ресурсы: ISupportsOverlays

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;
    }
}

Открытые методы

Метод Описание
IsOverlaySupportedРеализуйте эту функцию для фильтрации наложений, добавляемых в это окно.