Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

EditorWindow.BeginWindows

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public function BeginWindows(): void;
public void BeginWindows();

Описание

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

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


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


        
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 { // The position of the window public Rect windowRect = new Rect(100, 100, 200, 200); // Scroll position public Vector2 scrollPos = Vector2.zero; void OnGUI() { // Set up a scroll view scrollPos = GUI.BeginScrollView(new Rect(0, 0, position.width, position.height), scrollPos, new Rect(0, 0, 1000, 1000));

// Same code as before - make a window. Only now, it's INSIDE the scrollview BeginWindows(); windowRect = GUILayout.Window(1, windowRect, DoWindow, "Hi There"); EndWindows(); // Close the scroll view GUI.EndScrollView(); } void DoWindow(int unusedWindowID) { GUILayout.Button("Hi"); GUI.DragWindow(); } [MenuItem("Test/GUIWindow Demo 2")] static void Init() { EditorWindow.GetWindow(typeof(GUIWindowDemo2)); } }