zl程序教程

您现在的位置是:首页 >  工具

当前栏目

四、Unity编辑器开发之EditorWindow

2023-09-27 14:19:52 时间

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

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

using UnityEditor;

public class ExampleWindow : EditorWindow {}

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

    [MenuItem("Example/Open ExampleWindow")]
    static void OpenExampleWindow()
    {
        //打开窗口
    }

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

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()函数即可打开窗口:

    [MenuItem("Example/Open ExampleWindow")]
    static void OpenExampleWindow()
    {
        EditorWindow.GetWindow(typeof(ExampleWindow)).Show();
    }