すべてのポップアップウィンドウを表示するための開始領域をマークします
GUI.Window はエディター上ではゲーム内と動作が少し異なります。ゲーム内では画面上にウィンドウをポップアップしますが、エディターでは、
GUI.Window はエディターウィンドウのサブウィンドウとして表示されます。Begin/EndWindows は表示する場所を決定するのに使用します。
GUI.Window または GUILayout.Window は、BeginWindows / EndWindows で囲まれた中で記述する必要があります。例えば:
中にボタンを備えたシンプルなエディターウィンドウ
using UnityEditor; using UnityEngine; using System.Collections;
public class GUIWindowDemo : EditorWindow { // The position of the window public Rect windowRect = new Rect(100, 100, 200, 200); void OnGUI() { BeginWindows();
// All GUI.Window or GUILayout.Window must come inside here windowRect = GUILayout.Window(1, windowRect, DoWindow, "Hi There");
EndWindows(); }
// The window function. This works just like ingame GUI.Window void DoWindow(int unusedWindowID) { GUILayout.Button("Hi"); GUI.DragWindow(); }
// Add menu item to show this demo. [MenuItem("Test/GUIWindow Demo")] static void Init() { EditorWindow.GetWindow(typeof(GUIWindowDemo)); } }
ポップアップウィンドウが表示される場所は BeginWindows / EndWindows の組み合わせによって決定します。すべてのウィンドウのクリッピング空間は
GUI.BeginGroup や GUI.BeginScrollView によって決定します。
スクロールバーを使用したウィンドウと中にボタンを備えたシンプルなエディターウィンドウ
using UnityEditor; using UnityEngine; using System.Collections;
public class GUIWindowDemo2 : EditorWindow { // The position of the window public Rect windowRect = new Rect(100, 100, 200, 200); // Scroll position public Vector2 scrollPos = Vector2.zero; 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 unusedWindowID) { GUILayout.Button("Hi"); GUI.DragWindow(); } [MenuItem("Test/GUIWindow Demo 2")] static void Init() { EditorWindow.GetWindow(typeof(GUIWindowDemo2)); } }