GUI.GroupScope
Disposable helper class for managing GUI.BeginGroup / GUI.EndGroup.
Read time 2 minutesLast updated 5 days ago
Definition
- Type: Class
- Namespace: UnityEngine
- Assembly: UnityEngine.IMGUIModule
- Inherits from: Scope
- Implements: IDisposable
public class GUI.GroupScope : GUI.Scope, IDisposable
Remarks
GUI.BeginGroup is called at construction, and GUI.EndGroup is called when the instance is disposed. When you begin a group, the coordinate system for GUI controls are set so (0,0) is the top-left corner of the group. All controls are clipped to the group. Groups can be nested - if they are, children are clipped to their parents.
This is very useful when moving a bunch of GUI elements around on screen. A common use case is designing your menus to fit on a specific screen size, then centering the GUI on larger displays.
Examples
using UnityEngine;public class Example : MonoBehaviour{ void OnGUI() { // Constrain all drawing to be within a 800x600 pixel area centered on the screen. using (var groupScope = new GUI.GroupScope(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"); } // The group is now ended. }}
Constructors
Constructor | Description |
|---|---|
| GroupScope(UnityEngine.Rect) | Create a new GroupScope and begin the corresponding group. |
| GroupScope(UnityEngine.Rect,System.String) | Create a new GroupScope and begin the corresponding group. |
| GroupScope(UnityEngine.Rect,System.String,UnityEngine.GUIStyle) | Create a new GroupScope and begin the corresponding group. |
| GroupScope(UnityEngine.Rect,UnityEngine.GUIContent) | Create a new GroupScope and begin the corresponding group. |
| GroupScope(UnityEngine.Rect,UnityEngine.GUIStyle) | Create a new GroupScope and begin the corresponding group. |
| GroupScope(UnityEngine.Rect,UnityEngine.Texture) | Create a new GroupScope and begin the corresponding group. |
| GroupScope(UnityEngine.Rect,UnityEngine.Texture,UnityEngine.GUIStyle) | Create a new GroupScope and begin the corresponding group. |