全てのポップアップウィンドウを表示するための開始領域をマークします
GUI.Windowはエディタ上ではゲーム内と動作が少し異なります。ゲーム内では画面上にウィンドウをポップアップしますが、エディタでは、
GUI.Windowはエディタウィンドウのサブウィンドウとして表示されます。Begin/EndWindowsは表示する場所を決定するのに使用します。
GUI.Window または GUILayout.Window は、BeginWindows / EndWindows で囲まれた中で記述する必要があります。例えば:
ウィンドウと中にボタンを備えたシンプルなエディタウィンドウ
class GUIWindowDemo extends EditorWindow { // The position of the window var windowRect = Rect (100,100,200,200); // Main GUI Function function OnGUI () { // Begin Window BeginWindows (); // All GUI.Window or GUILayout.Window must come inside here windowRect = GUILayout.Window (1, windowRect, DoWindow, "Hi There"); // Collect all the windows between the two. EndWindows (); } // The window function. This works just like ingame GUI.Window function DoWindow () { GUILayout.Button ("Hi"); GUI.DragWindow (); } // Add menu item to show this demo. @MenuItem ("Test/GUIWindow Demo") static function Init () { EditorWindow.GetWindow (GUIWindowDemo); } }
ポップアップウィンドウが表示される場所は BeginWindows / EndWindows の組み合わせによって決定します。全てのウィンドウのクリッピング空間は
GUI.BeginGroup または GUI.BeginScrollView によって決定します。
スクロールバーを使用したウィンドウと中にボタンを備えたシンプルなエディタウィンドウ
class GUIWindowDemo2 extends EditorWindow { // The position of the window var windowRect = Rect (100,100,200,200); // Scroll position var scrollPos = Vector2.zero; function OnGUI () { // Set up a scroll view scrollPos = GUI.BeginScrollView ( new Rect (0, 0, position.width, position.height), scrollPos, new Rect (0, 0, 1000, 1000) ); // Same code as before - make a window. Only now, it's INSIDE the scrollview BeginWindows (); windowRect = GUILayout.Window (1, windowRect, DoWindow, "Hi There"); EndWindows (); // Close the scroll view GUI.EndScrollView (); } function DoWindow () { GUILayout.Button ("Hi"); GUI.DragWindow (); } @MenuItem ("Test/GUIWindow Demo 2") static function Init () { EditorWindow.GetWindow (GUIWindowDemo2); } }