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等字段,具体方法在后续文章中进行介绍。