Объявление
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);
Параметры
id | Уникальный идентификатор для использования для каждого окна. Это идентификатор, который вы будете использовать для взаимодействия с ним. |
screenRect | Прямоугольник на экране для окна. Система компоновки попытается разместить окно внутри него, если это невозможно сделать, она подгонит прямоугольник по размеру. |
func | Функция, которая создает GUI inside окна. Эта функция должна принимать один параметр - id окна, для которого в данный момент создается графический интерфейс. |
text | Текст для отображения в качестве заголовка окна. |
image | Текстура для отображения изображения в строке заголовка. |
content | Текст, изображение и всплывающая подсказка для этого окна. |
style | Необязательный стиль для окна. Если его не указать, используется стиль window из текущего GUISkin. |
options | Необязательный список параметров макета, определяющих дополнительные свойства макета. Любые значения, переданные здесь, переопределяют настройки, определенные style или screenRect , которые вы передаете.Смотрите так же: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
Возвращает
Rect Прямоугольник, в котором находится окно. Это может быть в другом положении и иметь другой размер, чем тот, который вы передали.
Описание
Создать всплывающее окно, в котором его содержимое размещается автоматически.
Окна располагаются над обычными элементами управления графическим интерфейсом, поддерживают фокусировку по щелчку и могут быть перетаскиваемы конечным пользователем. В отличие от других элементов управления, вам нужно передать им отдельную функцию, чтобы элементы управления GUI помещались в окно. Вот небольшой пример для начала:

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");
}
}
}