Version: 2017.2
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 用于每个窗口的唯一 ID。您将使用该 ID 与其进行交互。
screenRect 屏幕上用于窗口的矩形。布局系统会尝试将窗口适配到其内部 - 如果无法完成,则调整矩形以进行适配。
func 在窗口/内/创建 GUI 的函数。该函数必须接收一个参数 - 要为其创建 GUI 的窗口的 /id/。
text 要显示为窗口标题的文本。
image 在标题栏中显示图像的 Texture
content 该窗口的文本、图像和工具提示。
style (可选)用于窗口的样式。如果省略,则使用当前 GUISkinwindow 样式。
options (可选)一个布局选项列表,用于指定额外的布局属性。此处传递的任何值都将覆盖 style 或您传入的 screenRect 定义的设置。
另请参阅:GUILayout.WidthGUILayout.HeightGUILayout.MinWidthGUILayout.MaxWidthGUILayout.MinHeightGUILayout.MaxHeightGUILayout.ExpandWidthGUILayout.ExpandHeight

返回

Rect 窗口所在的矩形。其位置和大小可以与您传入的矩形不同。

描述

创建一个对自身内容进行自动布局的弹出窗口。

窗口浮动在普通 GUI 控件上方,可通过点击获得焦点,可以选择是否允许最终用户拖动。 与其他控件不同,您需要为它们传递一个将 GUI 控件放置在窗口内的独立函数。下面是一个帮您入门的小示例:

\ 游戏视图中的窗口。

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

您传入该函数的屏幕矩形仅用作指导。要对窗口应用额外限制,请传入一些额外的布局选项。在此应用的选项将覆盖计算出的大小。下面是一个小示例:

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