Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

PopupWindow

класс в UnityEditor / Наследует от: EditorWindow

Описание

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

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

Примером всплывающего окна в редакторе являются параметры «Эффекты просмотра сцены» на панели инструментов «Просмотр сцены» в редакторе:

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

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

using UnityEngine; using UnityEditor;

public class EditorWindowWithPopup : EditorWindow { // Add menu item [MenuItem("Example/Popup Example")] static void Init() { EditorWindow window = EditorWindow.CreateInstance(); 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); } }

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

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

OnDisable См. ScriptableObject.OnEnable.
OnEnable См. ScriptableObject.OnDisable.

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

Show Показать всплывающее окно с заданным PopupWindowContent.

Унаследованные члены

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

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

Свойства

autoRepaintOnSceneChange Перерисовывается ли окно автоматически при изменении сцены?
docked Возвращает значение true, если EditorWindow закреплен.
hasFocus Возвращает true, если EditorWindow находится в фокусе.
hasUnsavedChanges Если в производном классе установлено значение true, редактор предложит пользователю сохранить несохраненные изменения, если окно будет закрыто.
maximized Развернуто ли это окно?
maxSize Максимальный размер этого окна.
minSize Минимальный размер этого окна.
position Желаемое положение окна в пространстве экрана.
rootVisualElement Извлекает корневой визуальный элемент этой иерархии окон.
saveChangesMessage Сообщение, которое отображается пользователю, если ему предлагается сохранить
titleContent GUIContent, используемый для отображения заголовка EditorWindows.
wantsLessLayoutEvents Указывает, выполняется ли передача макета перед всеми пользовательскими событиями (например, EventType.MouseDown или [[EventType, KeyDown]]) или только перед событиями перерисовки.
wantsMouseEnterLeaveWindow Проверяет, принимаются ли события MouseEnterWindow и MouseLeaveWindow в графическом интерфейсе в этом окне редактора.
wantsMouseMove Проверяет, принимаются ли события MouseMove в графическом интерфейсе в этом окне редактора.
hideFlags Должен ли объект быть скрыт, сохранен вместе со сценой или изменен пользователем?
name Имя объекта.

Публичные Методы

BeginWindows Отметьте начальную область всех всплывающих окон.
Close Закройте окно редактора.
EndWindows Закрыть группу окон, начатую с помощью EditorWindow.BeginWindows.
Focus Перемещает фокус клавиатуры на другое окно EditorWindow.
RemoveNotification Не показывать уведомление.
Repaint Перекрасить окно.
SaveChanges Выполняет действие по сохранению содержимого окна.
SendEvent Отправляет событие в окно.
Show Показать окно EditorWindow.
ShowAsDropDown Показывает окно с выпадающим меню и стилем.
ShowAuxWindow Показать окно редактора во вспомогательном окне.
ShowModal Показать окно модального редактора.
ShowModalUtility Показать EditorWindow как плавающее модальное окно.
ShowNotification Показать уведомление.
ShowPopup Отображает окно редактора с использованием рамки всплывающего окна.
ShowUtility Показать EditorWindow как плавающее окно утилиты.
GetInstanceID Возвращает идентификатор экземпляра объекта.
ToString Возвращает имя объекта.

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

CreateWindow Создает окно EditorWindow типа T.
FocusWindowIfItsOpen Фокусирует первое найденное окно EditorWindow указанного типа, если оно открыто.
GetWindow Возвращает первое окно EditorWindow типа t, которое в данный момент находится на экране.
GetWindowWithRect Возвращает первое окно EditorWindow типа t, которое в данный момент находится на экране.
HasOpenInstances Проверяет, открыто ли окно редактора.
Destroy Удаляет игровой объект, компонент или ресурс.
DestroyImmediate Немедленно уничтожает объект obj. Вместо этого вам настоятельно рекомендуется использовать Destroy.
DontDestroyOnLoad Не уничтожайте целевой объект при загрузке новой сцены.
FindObjectOfType Возвращает первый активный загруженный объект типа Type.
FindObjectsOfType Получает список всех загруженных объектов типа Type.
Instantiate Клонирует исходный объект и возвращает клон.
CreateInstance Создает экземпляр объекта, доступного для сценария.

Операторы

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

Сообщения

Awake Вызывается при открытии нового окна.
CreateGUI CreateGUI вызывается, когда элемент rootVisualElement EditorWindow готов к заполнению.
hasUnsavedChanges Если в производном классе установлено значение true, редактор предложит пользователю сохранить несохраненные изменения, если окно будет закрыто.
OnDestroy OnDestroy вызывается для закрытия окна EditorWindow.
OnFocus Вызывается, когда окно получает фокус клавиатуры.
OnGUI Реализуйте свой собственный графический интерфейс редактора здесь.
OnHierarchyChange Обработчик сообщения, отправляемого при изменении объекта или группы объектов в иерархии.
OnInspectorUpdate OnInspectorUpdate вызывается со скоростью 10 кадров в секунду, чтобы дать инспектору возможность обновиться.
OnLostFocus Вызывается, когда окно теряет фокус клавиатуры.
OnProjectChange Обработчик сообщения, которое отправляется при изменении состояния проекта.
OnSelectionChange Вызывается при каждом изменении выделения.
saveChangesMessage Сообщение, которое отображается пользователю, если ему предлагается сохранить
Update Вызывается несколько раз в секунду для всех видимых окон.
Awake Эта функция вызывается при запуске сценария ScriptableObject.
OnDestroy Эта функция вызывается, когда объект, доступный для сценария, будет уничтожен.
OnDisable Эта функция вызывается, когда объект, доступный для сценария, выходит за пределы области видимости.
OnEnable Эта функция вызывается при загрузке объекта.
OnValidate Функция только для редактора, которую Unity вызывает при загрузке скрипта или изменении значения в Инспекторе.
Reset Восстановить значения по умолчанию.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3