Unity3D编辑器扩展 子窗体显示(GUILayout.Widnow)

Unity3D编辑器扩展——子窗体显示(GUILayout.Widnow)

  • 1.使用场景
  • 2.具体代码
    • 2.1 Monobehavior中调用
    • 2.2 EditorWindow中调用

1.使用场景

(1)在Unity中创建一个节点编辑器时,需要在主窗体中创建一个小窗体,方便操作

2.具体代码

在官网的API解释中只能搜到Monobehavior上的用法,但是后面我在其他的插件中发现了在EditorWindow中也可以使用

2.1 Monobehavior中调用

using UnityEngine;

public class test : MonoBehaviour
{
    Rect windowRect = new Rect(20, 20, 120, 50);

    private void Awake()
    {
        
    }


    void OnGUI()
    {
        windowRect = GUILayout.Window(0, windowRect, DoMyWindow, "My Window");
    }
    
    void DoMyWindow(int windowID)
    {
        if (GUILayout.Button("Hello World"))
        {
            print("Got a click");
        }
    }
}

Unity3D编辑器扩展 子窗体显示(GUILayout.Widnow)_第1张图片

2.2 EditorWindow中调用


using UnityEditor;
using UnityEngine;

public class TestWindow:EditorWindow
{
    [MenuItem("Demos/ChildWindow")]
    static void OpenWindow()
    {
        GetWindow();
    }

    Rect windowRect = new Rect(20, 20, 120, 50);

    private void OnGUI()
    {
        BeginWindows();
        windowRect = GUILayout.Window(0, windowRect, DoMyWindow, "My Window");
        EndWindows();
    }

    void DoMyWindow(int windowID)
    {
        if (GUILayout.Button("Hello World"))
        {
            Debug.Log("Got a click");
        }
    }
}

Unity3D编辑器扩展 子窗体显示(GUILayout.Widnow)_第2张图片

你可能感兴趣的:(Unity3D编辑器扩展,节点编辑器)