版本: Unity 6 (6000.0)
语言English
  • C#

GUILayout.Window

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每项更改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

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 在标题栏中显示图像的纹理
content 此窗口的文本、图像和工具提示。
style 用于窗口的可选样式。如果省略,则使用当前GUISkin中的window样式。
options 指定额外布局属性的布局选项的可选列表。此处传递的任何值都将覆盖由您传入的stylescreenRect定义的设置。
其他资源:GUILayout.WidthGUILayout.HeightGUILayout.MinWidthGUILayout.MaxWidthGUILayout.MinHeightGUILayout.MaxHeightGUILayout.ExpandWidthGUILayout.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"); } } }