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

EditorWindow.BeginWindows

Объявление

public void BeginWindows();

Описание

Отметьте начальную область всех всплывающих окон.

GUI.Window ведет себя в редакторе несколько иначе, чем в играх. В играх GUI.Window открывает всплывающее окно на вашем экране. В редакторе GUI.Window показывает подокно внутри одного из окон вашего редактора. Begin/EndWindows используется, чтобы определить, куда они могут идти. Все вызовы GUI.Window или GUILayout.Window должны находиться внутри BeginWindows / EndWindows. Вот так:

Простой редактор Окно с окном и кнопкой внутри.

Исключением из этого правила является Editor.OnSceneGUI, где область действия окна является неявной.

using UnityEditor; using UnityEngine; using System.Collections; public class GUIWindowDemo : EditorWindow { // The position of the window public Rect windowRect = new Rect(100, 100, 200, 200); void OnGUI() { BeginWindows(); // All GUI.Window or GUILayout.Window must come inside here windowRect = GUILayout.Window(1, windowRect, DoWindow, "Hi There"); EndWindows(); } // The window function. This works just like ingame GUI.Window void DoWindow(int unusedWindowID) { GUILayout.Button("Hi"); GUI.DragWindow(); } // Add menu item to show this demo. [MenuItem("Test/GUIWindow Demo")] static void Init() { EditorWindow.GetWindow(typeof(GUIWindowDemo)); } }

Размещение пары BeginWindows / EndWindows определяет, где будут появляться всплывающие окна; все окна обрезаются до области отсечения, определенной GUI.BeginGroup или GUI.BeginScrollView. Небольшой пример этого

Простое окно редактора с окном и кнопкой внутри с помощью полос прокрутки.
using UnityEditor; using UnityEngine; using System.Collections; public class GUIWindowDemo2 : EditorWindow { // Положение окна public Rect windowRect = new Rect(100, 100, 200, 200); // Позиция прокрутки public Vector2 scrollPos = Vector2.zero; void OnGUI() { // Настройка просмотра прокрутки scrollPos = GUI.BeginScrollView(new Rect(0, 0, position.width, position.height), scrollPos, new Rect(0, 0, 1000, 1000)); // Тот же код, что и раньше — создаем окно. Только теперь это ВНУТРИ прокрутки BeginWindows(); windowRect = GUILayout.Window(1, windowRect, DoWindow, "Hi There"); EndWindows(); // Закрыть вид прокрутки GUI.EndScrollView(); } void DoWindow(int unusedWindowID) { GUILayout.Button("Hi"); GUI.DragWindow(); } [MenuItem("Test/GUIWindow Demo 2")] static void Init() { EditorWindow.GetWindow(typeof(GUIWindowDemo2)); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3