FocusWindow, UnfocusWindow

说明

用法

FocusWindow 需要传入窗口的索引号,即 GUI.WindowGUILayout.Window 中设定的索引号。而 UnfocusWindow 只能在窗口绘制函数中使用,所以不需要传入参数。

public static void FocusWindow(int windowID);
public static void UnfocusWindow();

示例

private void OnSceneGUI () {
		Handles.BeginGUI ();
	
		_window1 = GUI.Window (0, _window1, OnWindowGUI, "Window 1");
		_window2 = GUI.Window (1, _window2, OnWindowGUI, "Window 2");
		_window3 = GUI.Window (2, _window3, OnWindowGUI, "Window 3");
	
		Handles.EndGUI ();
}

private void OnWindowGUI (int id) {
		if (GUILayout.Button ("Focus on next window")) {
				GUI.FocusWindow (id + 1 == 3 ? 0 : id + 1);
		}
	
		if (GUILayout.Button ("Unfocus window")) {
				GUI.UnfocusWindow ();
		}

		GUI.DragWindow ();
}

处于焦点的窗口,标题栏的颜色相对更明亮一些,如下图中的 Window 2: