Version: 2020.3
public void EndWindows ();

描述

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

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

// 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(); } }

BeginWindows/EndWindows 对的位置决定了弹出窗口的显示位置;所有窗口都会裁剪到 由 GUI.BeginGroupGUI.BeginScrollView 定义的裁剪区域。下面是该情况的一个小示例:

\ 包含一个窗口和一个按钮并使用滚动条的简单编辑器窗口。

// 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(); } }