Close a window group started with EditorWindow.BeginWindows.
Simple editor Window with a window and a button inside.
// Create an editor window with a moveable Layout window. // This has a button which can be clicked and moved.
using UnityEditor; using UnityEngine; using System.Collections;
public class Example : EditorWindow { Rect windowRect = new Rect(10, 10, 110, 50);
[MenuItem("Example/EndWindows test")] static void InitWindow() { GetWindowWithRect(typeof(Example), new Rect(0, 0, 200, 100)); }
void OnGUI() { BeginWindows();
// All GUI.Window or GUILayout.Window must come inside here windowRect = GUILayout.Window(1, windowRect, DoWindow, "Hi There");
EndWindows(); }
void DoWindow(int windowID) { GUILayout.Button("Hi"); GUI.DragWindow(); } }
The placement of the BeginWindows / EndWindows pair determines where popup windows will appear; all windows are clipped to the clipping area
defined by GUI.BeginGroup or GUI.BeginScrollView. A small example of that:
Simple editor window with a window and a button inside using scroll bars.
// The size of the window can be changed using X and Y scroll bars.
using UnityEditor; using UnityEngine; using System.Collections;
public class Example : EditorWindow { // The position of the window Rect windowRect = new Rect(10, 10, 210, 100);
// Scroll position Vector2 scrollPos = Vector2.zero;
[MenuItem("Example/EndWindows example")] static void InitWindow() { Example window = (Example)GetWindow(typeof(Example)); window.Show(); }
void 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(); }
void DoWindow(int windowID) { GUILayout.Button("Hi"); GUI.DragWindow(); } }