一、概述
创建自定义编辑器窗口涉及以下简单步骤:
- 创建一个派生自 EditorWindow 的脚本。
- 使用代码触发窗口自行显示。
- 实现工具的 GUI 代码。
二、派生自EditorWindow
为了创建编辑器窗口,必须将脚本存储在称为“Editor”的文件夹中。在派生自 EditorWindow 的此脚本内创建一个类。然后在内部 OnGUI 函数中编写 GUI 控件。
using UnityEngine;
using UnityEditor;
using System.Collections;
public class Example : EditorWindow
{
void OnGUI () {
// 此处为实际窗口代码
}
}
三、显示窗口
要在屏幕上显示窗口,请创建一个菜单项来显示该窗口。为此,需要创建一个由 MenuItem 属性 激活的函数。
在 Unity 中,默认情况下会保持窗口状态(因此再次选择该菜单项将显示现有窗口)。这是使用 EditorWindow.GetWindow 函数实现的,如下所示:
using UnityEngine;
using UnityEditor;
using System.Collections;
class MyWindow : EditorWindow {
[MenuItem ("Window/My Window")]
public static void ShowWindow () {
EditorWindow.GetWindow(typeof(MyWindow));
}
void OnGUI () {
// 此处为实际窗口代码
}
}
四、实现窗口的 GUI
应通过实现 OnGUI 函数来渲染窗口的实际内容。可以使用与游戏内 GUI 相同的 UnityGUI 类GUI
和 GUILayout
。此外,我们提供了一些额外 GUI 控件,这些控件位于仅用于编辑器的 EditorGUI
和 EditorGUILayout
类中。这些类将添加到普通类中已有的控件,因此您可以随意混合和搭配。
常用API可以查看“IMGUI常用API总结”。