BeginGroup / EndGroup を管理する Disposable ヘルパークラス
BeginGroup is called at construction, and 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.
これはスクリーン上で GUI 要素をまとめて移動させる場合に非常に便利です。一般的な具体例を上げると、メニューはスクリーンサイズに収まるように設計されるので、大きく表示する GUI はスクリーン内に収まるように中心に配置することがあります。
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. } }
GUI.GroupScope | 新しい GroupScope を作成し、対応するグループで開始します。 |