id | 每个窗口使用的唯一 ID。这是您用于与其交互的 ID。 |
screenRect | 屏幕上用于窗口的矩形。布局系统将尝试将窗口放入其中 - 如果无法做到,它将调整矩形以适应。 |
func | 创建窗口内部 GUI 的函数。此函数必须接受一个参数 - 它当前正在为其创建 GUI 的窗口的id 。 |
text | 显示为窗口标题的文本。 |
image | 在标题栏中显示图像的纹理。 |
content | 此窗口的文本、图像和工具提示。 |
style | 用于窗口的可选样式。如果省略,则使用当前GUISkin中的window 样式。 |
options | 指定额外布局属性的布局选项的可选列表。此处传递的任何值都将覆盖由您传入的style 或screenRect 定义的设置。其他资源:GUILayout.Width、GUILayout.Height、GUILayout.MinWidth、GUILayout.MaxWidth、GUILayout.MinHeight、GUILayout.MaxHeight、GUILayout.ExpandWidth、GUILayout.ExpandHeight。 |
Rect 窗口所在的矩形。这可能与您传入的矩形位于不同的位置并具有不同的尺寸。
创建一个自动布局其内容的弹出窗口。
窗口浮在普通 GUI 控件之上,具有点击聚焦功能,并且可以选择由最终用户拖动。与其他控件不同,您需要为其传递一个单独的函数,用于放置窗口内的 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"); } } }