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

PopupWindow

класс в UnityEditor

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

Описание

Класс, используемый для отображения всплывающих окон, наследуемых от PopupWindowContent.

Всплывающие окна Windows не имеют границ и не могут перетаскиваться или изменять размер. Они также автоматически закрываются, когда теряют фокус. Они предназначены для отображения кратковременной информации или опций.

Примером Всплывающего окна в редакторе является опция "Scene Эффекты Видения", на панели инструментов Видения Scene Редактора:



Ниже приведён пример пользовательского всплывающего окна, которое открывается кнопкой в окне редактора. У этого окна три переключателя, и оно автоматически закрывается при потере фокуса. Пример состоит из двух скриптов. Первый описывает окно редактора, которое открывается через пункт меню; в нём есть кнопка, показывающая всплывающее окно. Второй скрипт описывает содержимое самого всплывающего окна как отдельный класс.

Во-первых, это код для простого окна редактора, которое запускает всплывающее окно:

using UnityEngine;
using UnityEditor;

public class EditorWindowWithPopup : EditorWindow { // Add menu item [MenuItem("Examples/Popup Example")] static void Init() { EditorWindow window = EditorWindow.CreateInstance<EditorWindowWithPopup>(); window.Show(); }

Rect buttonRect; void OnGUI() { { GUILayout.Label("Editor window with Popup example", EditorStyles.boldLabel); if (GUILayout.Button("Popup Options", GUILayout.Width(200))) { PopupWindow.Show(buttonRect, new PopupExample()); } if (Event.current.type == EventType.Repaint) buttonRect = GUILayoutUtility.GetLastRect(); } } }

Далее, это код для самого всплывающего окна:

using UnityEngine;
using UnityEditor;

public class PopupExample : PopupWindowContent { bool toggle1 = true; bool toggle2 = true; bool toggle3 = true;

public override Vector2 GetWindowSize() { return new Vector2(200, 150); }

public override void OnGUI(Rect rect) { GUILayout.Label("Popup Options Example", EditorStyles.boldLabel); toggle1 = EditorGUILayout.Toggle("Toggle 1", toggle1); toggle2 = EditorGUILayout.Toggle("Toggle 2", toggle2); toggle3 = EditorGUILayout.Toggle("Toggle 3", toggle3); }

public override void OnOpen() { Debug.Log("Popup opened: " + this); }

public override void OnClose() { Debug.Log("Popup closed: " + this); } }

Каждый из них следует сохранить в отдельный файл с именем соответствующего класса. Ни один из них не является поведением, поэтому размещать их на игровом объекте не нужно. Когда они окажутся в проекте, откройте новое меню «Example» и выберите Popup Example. Затем нажмите кнопку в новом окне редактора, чтобы открыть окно параметров.

.

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

Свойство Описание
invalidSizeLabelUssClassNameИмя USS-класса для метки, отображаемой, когда содержимое имеет недопустимый размер.

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

Метод Описание
OnDisableСм. ScriptableObject.OnEnable.
OnEnableСм. ScriptableObject.OnDisable.

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

Метод Описание
ShowПоказать всплывающее окно с заданным PopupWindowContent.
Унаследованные члены 8

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

СвойствоОписание
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 в этом окне Редактора.
hideFlagsДолжен ли объект быть скрытым, сохраняться с Scene или изменяться пользователем?
nameИмя объекта.

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

МетодОписание
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 полотна.
GetInstanceIDПолучает экземпляр ID объекта.
ToStringВозвращает имя объекта.

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

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

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

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

Операторы

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

Сообщения

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

Мероприятия

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