docs: update API docs for rendering and script editors
This commit is contained in:
@@ -4,30 +4,47 @@
|
||||
|
||||
**类型**: `submodule`
|
||||
|
||||
**描述**: 组件属性编辑器层,负责把运行时组件映射到 Inspector 中的具体编辑 UI。
|
||||
**描述**: Inspector 组件编辑器层,负责把运行时组件映射成可撤销、可交互的专用编辑 UI。
|
||||
|
||||
## 概述
|
||||
|
||||
当前目录包含:
|
||||
当前组件编辑器系统走的是典型的“按组件类型注册专用 editor”路线:
|
||||
|
||||
- [IComponentEditor](IComponentEditor/IComponentEditor.md) 定义统一契约
|
||||
- [ComponentEditorRegistry](ComponentEditorRegistry/ComponentEditorRegistry.md) 负责注册、拥有和查找 editor
|
||||
- 各个具体 editor 只处理自己的组件 UI 与交互规则
|
||||
|
||||
这比把所有组件字段塞进一个通用 Inspector 渲染器更容易扩展,也更方便为特殊组件接入脚本元数据、引用选择器和撤销逻辑。
|
||||
|
||||
## 当前已记录的 editor
|
||||
|
||||
- [IComponentEditor](IComponentEditor/IComponentEditor.md)
|
||||
- [ComponentEditorRegistry](ComponentEditorRegistry/ComponentEditorRegistry.md)
|
||||
- [TransformComponentEditor](TransformComponentEditor/TransformComponentEditor.md)
|
||||
- [CameraComponentEditor](CameraComponentEditor/CameraComponentEditor.md)
|
||||
- [LightComponentEditor](LightComponentEditor/LightComponentEditor.md)
|
||||
- [ScriptComponentEditor](ScriptComponentEditor/ScriptComponentEditor.md)
|
||||
|
||||
这说明 Inspector 当前走的是“按组件类型注册专用 editor”的路线。这和商业编辑器里常见的 custom inspector / property drawer 思路是一致的。
|
||||
## 当前注册但尚未单独补页的 editor
|
||||
|
||||
当前这组 editor 也已经体现出比较明确的分层:
|
||||
按 `ComponentEditorRegistry.cpp` 当前实现,registry 还会注册:
|
||||
|
||||
- `IComponentEditor` 定义统一契约
|
||||
- `ComponentEditorRegistry` 负责注册和查找
|
||||
- 具体 editor 只处理本组件的 Inspector 体验
|
||||
- `MeshFilterComponentEditor`
|
||||
- `MeshRendererComponentEditor`
|
||||
|
||||
这比把所有组件字段硬塞进一个大而全的 Inspector 渲染器更容易扩展。
|
||||
## ScriptComponentEditor 在这层里的位置
|
||||
|
||||
[ScriptComponentEditor](ScriptComponentEditor/ScriptComponentEditor.md) 是这套系统里最依赖运行时元数据的一个 editor。它不是直接读取 `ScriptComponent` 自身的字段列表,而是通过 `ScriptEngine::TryGetScriptFieldModel()` 获取:
|
||||
|
||||
- 当前脚本类是否已分配 / 可用 / 缺失
|
||||
- 字段元数据
|
||||
- 默认值、stored override 和 live managed value 的合成结果
|
||||
- stored-only / type mismatch 一类问题状态
|
||||
|
||||
因此它也是 `ComponentEditors` 子模块和 `Scripting` 子模块的主要交汇点。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Editor 模块](../Editor.md)
|
||||
- [panels](../panels/panels.md)
|
||||
- [ComponentEditorRegistry](ComponentEditorRegistry/ComponentEditorRegistry.md)
|
||||
- [ScriptComponentEditor](ScriptComponentEditor/ScriptComponentEditor.md)
|
||||
- [ScriptComponentEditorUtils](ScriptComponentEditorUtils/ScriptComponentEditorUtils.md)
|
||||
- [InspectorPanel](../panels/InspectorPanel/InspectorPanel.md)
|
||||
- [Components](../../Components/Components.md)
|
||||
|
||||
Reference in New Issue
Block a user