id | @param id Уникальный идентификатор для использования каждого окна. Он используется для взаимодействия с окном. |
screenRect | @param screenRect Прямоугольник на экране для использования окна. Система позиционирования попытается заполнить окно, если не получится - оно будет заполнено простым прямоугольником. |
func | @param func Функция, создающая GUI внутри окне. Эта функция должна сдержать один параметр - идентификатор окна, для которого будет создавать GUI. |
text | @param text Текст, отображающийся в качестве заголовка окна. |
image | @param image Texture для отображения изображения в заголовке. |
content | @param content текст, изображение и подсказка для данного окна. |
style | @param style Настраиваемый стиль для использования окна. Если не указан, стиль окна будет взят из текущего GUISkin. |
options | @param options Настраиваемый список опций расположения, который определяет дополнительные свойства для расположения. Любые назначенные значения здесь будут переопределять настройки, определенные стилем. See Also: GUILayout.Width, GUILayout.Height, GUILayout.MinWidth, GUILayout.MaxWidth, GUILayout.MinHeight, GUILayout.MaxHeight, GUILayout.ExpandWidth, GUILayout.ExpandHeight. |
Rect @return Прямоугольник окна. Его размер и позиция может отличатся от того, который вы передали.
Делает раскрывающееся окно, которое автоматически позиционирует контент.
Окна располагаются поверх элементов управления GUI, фокусируются по клику и могут быть настроены на перетаскивание.
В отличие от других элементов управления, вам нужно разместить в окно отдельную функцию для элементов управления GUI. Вот небольшой пример:
"Окно в окне Game".
var windowRect : Rect = Rect (20, 20, 120, 50);
function OnGUI () { // Register the window. Notice the 3rd parameter windowRect = GUILayout.Window (0, windowRect, DoMyWindow, "My Window"); }
// Make the contents of the window function DoMyWindow (windowID : int) { // This button will size to fit the window if (GUILayout.Button ("Hello World")) print ("Got a click"); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Rect windowRect = new Rect(20, 20, 120, 50); void OnGUI() { windowRect = GUILayout.Window(0, windowRect, DoMyWindow, "My Window"); } void DoMyWindow(int windowID) { if (GUILayout.Button("Hello World")) print("Got a click"); } }
Прямоугольник экрана передается в функцию как руководство. Для применения дополнительных ограничений окну, передайте некоторые дополнительные опции. Те, которые применены здесь будут переопределять вычисление размера. Вот небольшой пример:
var windowRect : Rect = Rect (20, 20, 120, 50);
function 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 function DoMyWindow (windowID : int) { // 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"); }
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { public Rect windowRect = new Rect(20, 20, 120, 50); void OnGUI() { windowRect = GUILayout.Window(0, windowRect, DoMyWindow, "My Window", GUILayout.Width(100)); } void DoMyWindow(int windowID) { if (GUILayout.Button("Please click me a lot")) print("Got a click"); } }