四、编辑器开发之EditorWindow

2022-08-29 15:35:13 浏览数 (1)

Unity的使用,是在不同的编辑器窗口中进行,例如Scene、Game、Project、Hierarchy、Inspector等等,那么如何创建一个自定义的编辑器窗口?

首先需要EditorWindow类作为基类,例如我们创建一个ExampleWindow编辑器窗口:

代码语言:javascript复制
using UnityEditor;

public class ExampleWindow : EditorWindow {}

我们使用MenuItem,创建一个窗口的入口:

代码语言:javascript复制
    [MenuItem("Example/Open ExampleWindow")]
    static void OpenExampleWindow()
    {
        //打开窗口
    }

那么具体如何打开窗口?需要用到GetWindow函数:

代码语言:javascript复制
public static EditorWindow GetWindow (Type t);
public static EditorWindow GetWindow (Type t, bool utility);
public static EditorWindow GetWindow (Type t, bool utility, string title);
public static EditorWindow GetWindow (Type t, bool utility, string title, bool focus);

param1: 窗口的类型。

param2: 窗口是否浮动,为true表示不能内嵌到unity其他窗口中去,为false表示能嵌入其他窗口,默认为false。

param3: 窗口的标题,默认为窗口的类名。

param4: 是否获得焦点,默认为true。

使用GetWindow获得窗口后,调用Show()函数即可打开窗口:

代码语言:javascript复制
    [MenuItem("Example/Open ExampleWindow")]
    static void OpenExampleWindow()
    {
        EditorWindow.GetWindow(typeof(ExampleWindow)).Show();
    }

同样的,我们可以在窗口中添加Button、Toggle、Slider等元素,绘制string、color、int、float、enum等字段,具体方法在后续文章中进行介绍。

0 人点赞