Version: 2023.2

GUI.BeginGroup

切换到手册
public static void BeginGroup (Rect position);
public static void BeginGroup (Rect position, string text);
public static void BeginGroup (Rect position, Texture image);
public static void BeginGroup (Rect position, GUIContent content);
public static void BeginGroup (Rect position, GUIStyle style);
public static void BeginGroup (Rect position, string text, GUIStyle style);
public static void BeginGroup (Rect position, Texture image, GUIStyle style);
public static void BeginGroup (Rect position, GUIContent content, GUIStyle style);

参数

position 屏幕上用于组的矩形。
text 要在组上显示的文本。
image 要在组上显示的 Texture
content 该组的文本、图像和工具提示。如果提供,则该组“捕获”任何鼠标点击操作;如果省略,则不“捕获”鼠标,不渲染背景,并且将传递鼠标点击操作。
style 用于背景的样式。

描述

开始一个组。必须与 EndGroup 调用配对使用。

当您开始一个组时,将设置 GUI 控件的坐标系 - (0,0) 为组的左上角。所有控件都被裁剪到组中。 组可以嵌套 - 当组嵌套时,子项将裁剪到其父项。

当在屏幕上移动一组 GUI 元素时,这非常有用。一个常见的用例是设计适合特定屏幕尺寸的菜单,然后将 GUI 放置在较大显示屏的中心位置。 另请参阅:matrixBeginScrollView

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void OnGUI() { // Constrain all drawing to be within a 800x600 pixel area centered on the screen. GUI.BeginGroup(new Rect(Screen.width / 2 - 400, Screen.height / 2 - 300, 800, 600));

// Draw a box in the new coordinate space defined by the BeginGroup. // Notice how (0,0) has now been moved on-screen GUI.Box(new Rect(0, 0, 800, 600), "This box is now centered! - here you would put your main menu");

// We need to match all BeginGroup calls with an EndGroup GUI.EndGroup(); } }