editor: add shader-driven material property inspector
This commit is contained in:
@@ -440,3 +440,44 @@ Material 面板不应再次演化成随意堆字段的临时入口。所有 rend
|
||||
- 关键词与属性在 Inspector 中的可视化编辑
|
||||
|
||||
因此,Phase 2 的性质是“先把材质状态模型与保存链路做对”,而不是“材质面板功能已经完整”。
|
||||
|
||||
## 13. Phase 3 执行结果
|
||||
|
||||
状态:已完成
|
||||
|
||||
本阶段已经开始把正确的材质状态模型真正暴露到 Inspector 上,重点是基于 Shader schema 生成属性面板,并处理 Shader 切换时的状态重建。
|
||||
|
||||
### 13.1 已完成内容
|
||||
|
||||
- Inspector 已新增 `Properties` 区块。
|
||||
- 属性区会基于当前 Shader 的 schema 动态生成,而不是写死字段。
|
||||
- 当前已接入的属性类型包括:
|
||||
- `Float / Range`
|
||||
- `Int`
|
||||
- `Color`
|
||||
- `Vector`
|
||||
- `Texture2D / TextureCube`
|
||||
- Texture 类型已接入资源选择控件,不再只是文本占位。
|
||||
- 每个属性当前会直接显示 Shader 中声明的默认值文本,作为当前参数的基线提示。
|
||||
|
||||
### 13.2 Shader 切换行为已收口
|
||||
|
||||
本阶段同时处理了一个关键一致性问题:
|
||||
|
||||
- 当用户切换 Shader 时,Inspector 会先基于新 Shader schema 重建 `MaterialAssetState`
|
||||
- 能与新 Shader 对齐的同名属性会尽量保留原值
|
||||
- 已不被新 Shader 声明的旧属性不会继续残留在保存结果里
|
||||
- 与新 Shader 不匹配的旧关键词也会被清理
|
||||
|
||||
这样可以避免旧材质属性被继续写回到新 Shader 材质文件中,从而减少生成无效材质源文件的风险。
|
||||
|
||||
### 13.3 本阶段仍未完成的部分
|
||||
|
||||
以下内容还需要后续阶段继续收口:
|
||||
|
||||
- 属性默认值与显式覆盖值的正式“重置/回退”交互
|
||||
- 关键词的可视化编辑 UI
|
||||
- 更完整的属性类型与显示策略细化
|
||||
- 针对 Inspector 材质链路的专门自动化测试
|
||||
|
||||
因此,Phase 3 的完成标准是“Shader schema 驱动的属性面板已经建立起来”,但还不是最终形态。
|
||||
|
||||
Reference in New Issue
Block a user