检视器系统是 Godot 引擎编辑器的一个核心组件,它提供了一个统一的界面来查看和编辑各种对象、资源和节点的属性。它负责以有组织的方式显示属性,为不同的属性类型提供适当的编辑器,并处理属性更新。
本文档涵盖了检视器系统的架构和功能,包括属性编辑器是如何创建的、数据如何在系统中流动以及如何扩展它。有关创建自定义编辑器或检视器插件的信息,请参阅编辑器架构和编辑器插件。
检视器系统由几个关键组件组成,它们协同工作以提供属性编辑功能。
来源
该系统遵循模型-视图-控制器模式。
EditorInspector 是一个 ScrollContainer,用于显示和管理给定对象的属性编辑器。它负责:
来源
EditorProperty 是检视器中所有属性编辑器的基类。它提供了:
每种特定的属性类型(int、float、string、color 等)都有一个继承自 EditorProperty 的专用编辑器。
来源
EditorInspectorPlugin 系统允许通过自定义编辑器扩展检视器。插件可以:
来源
检视器以分层结构组织属性。
| 复杂度 | 描述 | 示例 |
|---|---|---|
| 类别 | 属性的顶层分组。 | "Node", "Transform" |
| 章节 | 类别内的子分组。 | "Position", "Rotation", "Scale" |
| 属性 | 单个属性编辑器。 | "x", "y", "z" |
| 子属性。 | 复杂属性的组成部分。 | 数组的元素。 |
属性可以通过多种方式进行组织:
来源
Godot 检视器包含一套全面的内置属性编辑器,适用于所有原生类型。
| 属性类型 | 编辑器类 | 描述 |
|---|---|---|
| Bool | EditorPropertyCheck | 用于布尔值的复选框。 |
| Int | EditorPropertyInteger | 用于整数值的微调器。 |
| 浮点数 | EditorPropertyFloat | 用于浮点值的滑块或微调器。 |
| 字符串 | EditorPropertyText | 用于字符串编辑的文本字段。 |
| 颜色 | EditorPropertyColor | 颜色选择器。 |
| 资源 | EditorPropertyResource | 带预览的资源选择器。 |
| Vector2/3/4 | EditorPropertyVector2/3/4 | 向量的组件编辑器。 |
| 数组 | EditorPropertyArray | 数组元素的编辑器。 |
| 字典 | EditorPropertyDictionary | 键值对的编辑器。 |
属性编辑器根据属性类型和提示使用适当的 UI 控件。对于数值类型,EditorSpinSlider 提供了一个统一的界面,用于通过键盘、鼠标或拖动操作编辑值。
来源
检视器对资源属性提供特殊处理。
EditorResourcePicker 组件负责资源选择、创建、加载和基本操作。它在可能的情况下显示资源的预览,并提供一个包含各种资源操作的上下文菜单。
来源
数组和字典等复杂类型拥有专门的编辑器。
数组编辑器提供了以下控件:
字典编辑器提供类似的功能,并额外支持编辑键和值。
来源
检视器在 UI 和底层对象之间维护双向数据流。
更新周期经过仔细管理,以防止在属性相互依赖或更新一个属性影响其他属性时发生无限循环。
来源
InspectorDock 类将检视器集成到编辑器界面中。
EditorInspector 实例。来源
检视器可以通过多种方式进行扩展:
自定义属性编辑器创建的示例流程。
来源
检视器系统设计用于高效处理具有许多属性的对象。
来源
检视器包含多项辅助功能
来源