GUILayout.Window
Declaration
public static Rect Window(int id, Rect screenRect, GUI.WindowFunction func, string text, params GUILayoutOption[] options);public static Rect Window(int id, Rect screenRect, GUI.WindowFunction func, Texture image, params GUILayoutOption[] options);public static Rect Window(int id, Rect screenRect, GUI.WindowFunction func, GUIContent content, params GUILayoutOption[] options);public static Rect Window(int id, Rect screenRect, GUI.WindowFunction func, string text, GUIStyle style, params GUILayoutOption[] options);public static Rect Window(int id, Rect screenRect, GUI.WindowFunction func, Texture image, GUIStyle style, params GUILayoutOption[] options);public static Rect Window(int id, Rect screenRect, GUI.WindowFunction func, GUIContent content, GUIStyle style, params GUILayoutOption[] options);Параметры
| Параметр | Описание |
|---|---|
| Идентификатор | Уникальный идентификатор для каждого окна. Именно через него вы будете с ним работать. |
| screenRect | Прямоугольник на экране, который будет использоваться для окна. Система макета попытается поместить окно внутрь этого прямоугольника — если это не удастся, то она изменит прямоугольник так, чтобы он вписывался. |
| Функции | Функция, создающая окно GUI inside. Эта функция должна принимать один параметр — id окна, для которого она в настоящее время создает GUI. |
| текст | Текст, отображаемый в качестве заголовка окна. |
| изображение | Texture для отображения изображения в заголовке. |
| содержание | Текст, изображение и tooltip для этого окна. |
| стиль | Необязательный стиль для использования в окне. Если этот параметр не указан, используется стиль window из текущих стилей GUISkin. |
| варианты | Необязательный список параметров компоновки, задающих дополнительные свойства раскладки. Любые переданные здесь значения переопределяют настройки, заданные style или screenRect Ты проходишь.Дополнительные ресурсы: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
Возвращаемое значение
Прямая Прямоугольник, в котором находится окно. Этот прямоугольник может находиться в другом положении и иметь другой размер, чем тот, в который вы его перенесли.
Описание
Сделать всплывающее окно, которое раскладывает его содержимое автоматически.
Windows поплавок выше нормального GUI управления, особенность щелкните-к-фокусу и можно по желанию перетащить вокруг конечным пользователем. Не похож на другие управления, вам нужно пройти им отдельную функцию для GUI контроля, чтобы поместить внутрь окна. Вот небольшой пример, чтобы начать:
Окно в Game Вид.
using UnityEngine;
public class ExampleScript : MonoBehaviour { Rect windowRect = new Rect(20, 20, 120, 50);
void OnGUI() { // Register the window. Notice the 3rd parameter windowRect = GUILayout.Window(0, windowRect, DoMyWindow, "My Window"); }
// Make the contents of the window void DoMyWindow(int windowID) { // This button will size to fit the window if (GUILayout.Button("Hello World")) { print("Got a click"); } } }
Прямоугольник экрана, который вы передаёте функции, служит лишь ориентиром. Чтобы наложить на окно дополнительные ограничения, передайте дополнительные параметры компоновки: они переопределят рассчитанный размер. Небольшой пример:
using UnityEngine;
public class ExampleScript : MonoBehaviour { Rect windowRect = new Rect(20, 20, 120, 50);
void OnGUI() { // Register the window. Here we instruct the layout system to // make the window 100 pixels wide no matter what. windowRect = GUILayout.Window(0, windowRect, DoMyWindow, "My Window", GUILayout.Width(100)); }
// Make the contents of the window void DoMyWindow(int windowID) { // This button is too large to fit the window // Normally, the window would have been expanded to fit the button, but due to // the GUILayout.Width call above the window will only ever be 100 pixels wide if (GUILayout.Button("Please click me a lot")) { print("Got a click"); } } }