Version: 2017.3
public void EndWindows ();

描述

关闭由 EditorWindow.BeginWindows 开始的窗口组。

\ 包含一个窗口和一个按钮的简单编辑器窗口。

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.BeginGroupGUI.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); } }