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

EditorWindow

класс в UnityEditor

Наследуется от:ScriptableObject

Описание

Унаследуйтесь от этого класса, чтобы создать собственное окно редактора.

С помощью этого класса создаются окна редактора, которые могут плавать отдельно или закрепляться как вкладки — как стандартные окна Unity Editor.

Вы можете использовать MenuItem атрибут для настройки окна Редактора, которое будет открываться в меню Unity Editor.

При создании настраиваемого окна Редактора следуйте следующим рекомендациям:

  • Поместите код, зависящий от загрузки UXML/USS в методе CreateGUI, чтобы убедиться, что все необходимые ассеты доступны.
  • Код регистрации события храните внутри CreateGUI или после вызова CreateGUI.

На следующей диаграмме показан порядок выполнения окна Редактора:

  • OnEnable: Вызывается при загрузке скрипта или при включении объекта.
  • EditorApplication.isUpdating: Если true, Редактор обновляет AssetDatabase.
  • CreateGUI: формирует графический интерфейс, если редактор не обновляется.
  • Update: Вызывается несколько раз в секунду на всех видимых окнах.
  • OnGUI: Вызывается несколько раз в кадре для отображения и обработки событий GUI.
  • OnDisable: Вызывается при отключении скрипта или уничтожении объекта для завершения и очистки ресурсов.

Пример создания окна Редактора, реагирующего на ввод пользователя, см. в Создание собственного окна Редактора с помощью сценария C#.

using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;

public class MyEditorWindow : EditorWindow
{
    [MenuItem("Examples/My Editor Window")]
    public static void ShowExample()
    {
        MyEditorWindow wnd = GetWindow<MyEditorWindow>();
        wnd.titleContent = new GUIContent("MyEditorWindow");
    }

    public void CreateGUI()
    {
        // Each editor window contains a root VisualElement object
        VisualElement root = rootVisualElement;

        // VisualElements objects can contain other VisualElement following a tree hierarchy
        Label label = new Label("Hello World!");
        root.Add(label);

        // Create button
        Button button = new Button();
        button.name = "button";
        button.text = "Button";
        root.Add(button);

        // Create toggle
        Toggle toggle = new Toggle();
        toggle.name = "toggle";
        toggle.label = "Toggle";
        root.Add(toggle);
    }
}

Статические свойства

Свойство Описание
focusedWindowEditorWindow, на котором в настоящее время находится фокус клавиатуры. (только для чтения)
mouseOverWindowEditorWindow в настоящее время под курсором мыши. (только для чтения)

Свойства

Свойство Описание
autoRepaintOnSceneChangeВключите это свойство для автоматического перерисовывания окна при изменении SceneView.
dataModeControllerЭкземпляр IDataModeController для обработки функций DataMode для текущего окна.
dockedВозвращает true, если EditorWindow закреплен.
EditorWindowМы внутри.
hasFocusВозвращает true, если EditorWindow фокусируется.
hasUnsavedChangesЭто свойство определяет, будет ли Редактор предлагать пользователю сохранить или отбросить несохраненные изменения перед закрытием окна.
maximizedБудет ли это окно максимизировано?
maxSizeМаксимальный размер этого окна, когда оно плавающее или модальное. Максимальный размер не используется, когда окно пришвартировано.
minSizeМинимальный размер этого окна, когда оно плавающее или модальное. Минимальный размер не используется, когда окно пришвартировано.
overlayCanvasOverlayCanvas для этого окна.
positionЖелаемое положение окна в пространстве экрана.
rootVisualElementПолучает корневой визуальный элемент этой иерархии окон.
saveChangesMessageСообщение, которое отображается пользователю при получении запроса на сохранение
titleContentGUIContent используется для рисования названия EditorWindows.
wantsLessLayoutEventsУказывает, выполняется ли проход макета перед всеми событиями пользователя (например, EventType.MouseDown или EventType.KeyDown) или только перед событиями перерисовки.
wantsMouseEnterLeaveWindowПроверяет, получены ли события MouseEnterWindow и MouseLeaveWindow в GUI в этом окне Редактора.
wantsMouseMoveПроверяет, получены ли события MouseMove в GUI в этом окне Редактора.

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

Метод Описание
BeginWindowsОтметить начальную область всех всплывающих окон.
CloseЗакройте окно редактора.
DiscardChangesОтбрасывает несохраненные изменения в содержимом окна.
EndWindowsЗакрыть группу окон, начинающуюся с EditorWindow.BeginWindows.
FocusПеремещает фокус клавиатуры на другой EditorWindow.
GetExtraPaneTypesПолучает дополнительные типы EditorWindow, связанные с текущим окном.
RemoveNotificationПрекратить показ сообщения об уведомлении.
RepaintЗаставить окно перекраситься. Это ставит в очередь команду для отображения окна в следующем кадре.
SaveChangesВыполняет сохранение содержимого окна.
SendEventОтправляет Событие в окно.
ShowПоказать окно EditorWindow.
ShowAsDropDownОтображает окно с поведением выпадающего списка и стилем.
ShowAuxWindowПоказать окно редактора во вспомогательном окне.
ShowModalПоказать модальный редактор.
ShowModalUtilityПоказывает EditorWindow как плавающее модальное окно.
ShowNotificationПоказать сообщение об уведомлении.
ShowPopupОтображает окно редактора с использованием всплывающих окон.
ShowTabПоказывает пришвартованное окно Редактора.
ShowUtilityПоказывать EditorWindow как плавающее окно.
TryGetOverlayПолучить Оверлей с соответствующим ID из EditorWindow полотна.

Защищенные методы

Метод Описание
OnBackingScaleFactorChangedВызывается при изменении масштаба UI для этого EditorWindow.

Статические методы

Метод Описание
CreateWindowСоздает EditorWindow типа T.
FocusWindowIfItsOpenФокусирует первый найденный EditorWindow указанного типа, если он открыт.
GetWindowВозвращает первый EditorWindow типа windowType, который в данный момент находится на экране.
GetWindowWithRectВозвращает первый EditorWindow типа t, который в данный момент находится на экране.
HasOpenInstancesПроверяет открытость окна редактора.

Сообщения

Сообщение Описание
AwakeВызывается при открытии нового окна.
CreateGUICreateGUI вызывается, когда EditorWindow's rootVisualElement готова к заполнению.
hasUnsavedChangesЭто свойство определяет, будет ли Редактор предлагать пользователю сохранить или отбросить несохраненные изменения перед закрытием окна.
OnBecameInvisibleВызывается после того, как окно удалено из контейнерного представления или больше не видно в коллекции EditorWindow с вкладками.
OnBecameVisibleВызывается после добавления окна в представление контейнера.
OnDestroyOnDestroy вызывается для закрытия окна EditorWindow.
OnFocusВызывается, когда окно получает фокус клавиатуры.
OnGUIРеализуйте свой собственный редактор GUI здесь.
OnHierarchyChangeОбработчик для сообщения, которое отправляется при изменении объекта или группы объектов в иерархии.
OnInspectorUpdateOnInspectorUpdate вызывается с частотой 10 кадров в секунду, чтобы дать инспектору возможность обновить изображение.
OnLostFocusВызывается, когда окно теряет фокус клавиатуры.
OnProjectChangeОбработчик сообщения, которое отправляется при каждом изменении состояния проекта.
OnSelectionChangeВызывается при изменении выбора.
saveChangesMessageСообщение, которое отображается пользователю при получении запроса на сохранение
UpdateВызывается несколько раз в секунду на всех видимых окнах.

Мероприятия

Мероприятие Описание
windowFocusChangedВызывается при изменении фокуса окна редактора.
Унаследованные члены 5

Свойства

СвойствоОписание
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

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

МетодОписание
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

Статические методы

МетодОписание
DestroyУдаляет GameObject, компонент или ресурс.
DestroyImmediateНемедленно уничтожает указанный объект. Используйте с осторожностью и только в режиме редактирования.
DontDestroyOnLoadНе уничтожать целевой Объект при загрузке нового Scene.
FindAnyObjectByTypeПолучает любой активный загруженный объект типа Type.
FindFirstObjectByTypeПолучает первый активный загруженный объект типа Type.
FindObjectsByTypeПолучает список всех загруженных объектов типа Type.
InstantiateКлонирует исходный объект и возвращает клон.
InstantiateAsyncЗахватывает моментальный снимок первоначального объекта (который должен быть связан с каким-либо GameObject) и возвращает AsyncInstantiateOperation.
CreateInstanceСоздает экземпляр скриптового объекта.

Операторы

ОператорОписание
boolСуществует ли объект?
оператор!=Сравнивает, если два объекта ссылаются на разные объекты.
оператор ==Сравнение двух ссылок на объекты для определения того, относятся ли они к одному и тому же объекту.

Сообщения

СообщениеОписание
AwakeВызывается при создании экземпляра ScriptableObject.
OnDisableЭта функция вызывается, когда скриптовый объект выходит за пределы области действия.
OnEnableЭта функция вызывается при загрузке объекта.
OnValidateФункция только для редактора, которую вызывает Unity при загрузке скрипта или изменении значения в Inspector.
ResetСброс значений по умолчанию.