从该类派生以创建自定义编辑器窗口。
使用此类创建编辑器窗口,这些窗口可以独立浮动或作为选项卡停靠,类似于 Unity 编辑器中的默认窗口。
可以使用 MenuItem 属性配置编辑器窗口,以便在 Unity 编辑器菜单中打开。
创建自定义编辑器窗口时,请遵循以下指南
下图显示了编辑器窗口的执行顺序
有关如何创建对用户输入做出反应的编辑器窗口的示例,请参阅 使用 C# 脚本创建自定义编辑器窗口。
using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class MyEditorWindow : EditorWindow { [MenuItem("Examples/My Editor Window")] public static void ShowExample() { MyEditorWindow wnd = GetWindow<MyEditorWindow>(); wnd.titleContent = new GUIContent("MyEditorWindow"); } public void CreateGUI() { // Each editor window contains a root VisualElement object VisualElement root = rootVisualElement; // VisualElements objects can contain other VisualElement following a tree hierarchy Label label = new Label("Hello World!"); root.Add(label); // Create button Button button = new Button(); button.name = "button"; button.text = "Button"; root.Add(button); // Create toggle Toggle toggle = new Toggle(); toggle.name = "toggle"; toggle.label = "Toggle"; root.Add(toggle); } }
focusedWindow | 当前具有键盘焦点的 EditorWindow。(只读) |
mouseOverWindow | 鼠标光标当前所在的 EditorWindow。(只读) |
autoRepaintOnSceneChange | 启用此属性,以便在 SceneView 被修改时自动重绘窗口。 |
dataModeController | IDataModeController 的实例,用于处理当前窗口的数据模式功能。 |
docked | 如果 EditorWindow 被停靠,则返回 true。 |
hasFocus | 如果 EditorWindow 处于焦点状态,则返回 true。 |
hasUnsavedChanges | 此属性指定在窗口关闭之前,编辑器是否提示用户保存或放弃未保存的更改。 |
maximized | 此窗口是否已最大化? |
maxSize | 当窗口处于浮动或模态状态时的最大尺寸。当窗口被停靠时,最大尺寸不适用。 |
minSize | 当窗口处于浮动或模态状态时的最小尺寸。当窗口被停靠时,最小尺寸不适用。 |
overlayCanvas | 此窗口的 OverlayCanvas。 |
position | 窗口在屏幕空间中的所需位置。 |
rootVisualElement | 检索此窗口层次结构的根可视元素。 |
saveChangesMessage | 如果提示用户保存,则显示给用户的消息 |
titleContent | 用于绘制 EditorWindow 标题的 GUIContent。 |
wantsLessLayoutEvents | 指定在所有用户事件(例如,EventType.MouseDown 或 EventType.KeyDown)之前执行布局传递,还是仅在重绘事件之前执行布局传递。 |
wantsMouseEnterLeaveWindow | 检查此编辑器窗口中的 GUI 是否接收 MouseEnterWindow 和 MouseLeaveWindow 事件。 |
wantsMouseMove | 检查此编辑器窗口中的 GUI 是否接收 MouseMove 事件。 |
BeginWindows | 标记所有弹出窗口的开始区域。 |
关闭 | 关闭编辑器窗口。 |
DiscardChanges | 放弃对窗口内容的未保存更改。 |
EndWindows | 关闭使用 EditorWindow.BeginWindows 开始的窗口组。 |
Focus | 将键盘焦点移动到另一个 EditorWindow。 |
GetExtraPaneTypes | 获取与窗口关联的额外窗格。 |
RemoveNotification | 停止显示通知消息。 |
Repaint | 使窗口重绘。 |
SaveChanges | 对窗口的内容执行保存操作。 |
SendEvent | 将事件发送到窗口。 |
Show | 显示 EditorWindow 窗口。 |
ShowAsDropDown | 显示具有下拉行为和样式的窗口。 |
ShowAuxWindow | 在辅助窗口中显示编辑器窗口。 |
ShowModal | 显示模态编辑器窗口。 |
ShowModalUtility | 将 EditorWindow 显示为浮动模态窗口。 |
ShowNotification | 显示通知消息。 |
ShowPopup | 使用弹出式框架显示编辑器窗口。 |
ShowTab | 显示停靠的编辑器窗口。 |
ShowUtility | 将 EditorWindow 显示为浮动实用程序窗口。 |
TryGetOverlay | 从 EditorWindow 画布中获取具有匹配 ID 的叠加层。 |
OnBackingScaleFactorChanged | 当更改此 EditorWindow 的 UI 缩放比例时调用。 |
CreateWindow | 创建类型为 T 的 EditorWindow。 |
FocusWindowIfItsOpen | 如果指定类型的 EditorWindow 已打开,则将焦点设置为第一个找到的窗口。 |
GetWindow | 返回当前位于屏幕上的第一个类型为 windowType 的 EditorWindow。 |
GetWindowWithRect | 返回当前位于屏幕上的第一个类型为 t 的 EditorWindow。 |
HasOpenInstances | 检查编辑器窗口是否已打开。 |
Awake | 在新窗口打开时调用。 |
CreateGUI | 当 EditorWindow 的 rootVisualElement 已准备好填充时,将调用 CreateGUI。 |
hasUnsavedChanges | 此属性指定在窗口关闭之前,编辑器是否提示用户保存或放弃未保存的更改。 |
OnBecameInvisible | 在窗口从容器视图中删除或不再在 EditorWindow 的选项卡式集合中可见之后调用。 |
OnBecameVisible | 在窗口添加到容器视图之后调用。 |
OnDestroy | 调用 OnDestroy 以关闭 EditorWindow 窗口。 |
OnFocus | 当窗口获得键盘焦点时调用。 |
OnGUI | 在此处实现您自己的编辑器 GUI。 |
OnHierarchyChange | 当层次结构中的对象或一组对象发生变化时发送的消息的处理程序。 |
OnInspectorUpdate | OnInspectorUpdate 每秒调用 10 次,以便检查器有机会更新。 |
OnLostFocus | 当窗口失去键盘焦点时调用。 |
OnProjectChange | 每当项目状态发生变化时发送的消息的处理程序。 |
OnSelectionChange | 每当选择发生变化时调用。 |
saveChangesMessage | 如果提示用户保存,则显示给用户的消息 |
Update | 每秒在所有可见窗口上调用多次。 |
windowFocusChanged | 每当获得焦点的编辑器窗口发生变化时调用。 |
GetInstanceID | 获取对象的实例 ID。 |
ToString | 返回对象的名称。 |
Destroy | 删除游戏对象、组件或资产。 |
DestroyImmediate | 立即销毁对象 obj。强烈建议您使用 Destroy 代替。 |
DontDestroyOnLoad | 加载新场景时,不要销毁目标对象。 |
FindAnyObjectByType | 检索类型为 type 的任何活动加载的对象。 |
FindFirstObjectByType | 检索类型为 type 的第一个活动加载的对象。 |
FindObjectsByType | 检索类型为 type 的所有加载对象的列表。 |
Instantiate | 克隆对象 original 并返回克隆。 |
InstantiateAsync | 捕获原始对象(必须与某些游戏对象相关)的快照,并返回 AsyncInstantiateOperation。 |
CreateInstance | 创建可脚本化对象的实例。 |
bool | 对象是否存在? |
operator != | 比较两个对象是否引用不同的对象。 |
operator == | 比较两个对象引用,以查看它们是否引用同一个对象。 |
Awake | 当创建 ScriptableObject 的实例时调用。 |
OnDisable | 当可脚本化对象超出范围时,将调用此函数。 |
OnEnable | 加载对象时,将调用此函数。 |
OnValidate | 仅编辑器功能,当脚本加载或检查器中的值发生变化时,Unity 会调用该功能。 |
Reset | 重置为默认值。 |