Skip to content

SuperCoreKit 配置面板

SuperCoreKit 是 SuperCore 的统一配置入口。它会扫描项目中所有继承 ConfigSO 的配置资产,按照 ConfigGroupAttribute 分组排序,并使用 ConfigEditorAttribute 指定的自定义编辑器绘制详情。没有指定自定义编辑器时,会回退到通用的 SerializedObject 面板。

子功能

打开与使用

Demo 默认在 Unity 主 Toolbar 提供 SuperCoreKit 按钮。打开后界面分为三部分:

SuperCoreKit 配置面板

需要逐项对照 Demo 当前配置时,查看 配置界面图鉴。图鉴覆盖三个页签中的 19 个配置入口,并展开了列表、样式项、资源组和构建 Stage。

  • 顶部:配置分组,例如 ConfigsGameSystemEditorConfig
  • 左侧:当前分组中的配置资产。
  • 右侧:当前配置的自定义详情页;页面可以提供固定工具栏和可滚动的数据区。

点击右上角 Refresh 会重新扫描项目中的 ConfigSO 资产。资产名以 Cfg_ 开头时,左侧按钮会隐藏该前缀,例如 Cfg_Audio 显示为 Audio。当前还有两个仅影响显示的别名:Cfg_Res 显示为 ResourceCfg_UIWindowGenerator 显示为 UIGenerator

Demo 当前接入的配置主要包括:

分组配置
ConfigsSuperCore、Module、Global、Res、HotUpdate、Debug、GM、Table、Localization、Audio、UI、Procedure
GameSystemCollision、FloatingText、HUD 等业务系统配置
EditorConfigBuild、AssetLabel、Atlas、ToolBarBtn、UIWindowGenerator

分组只是编辑器导航,不改变配置的运行时归属。

默认编辑器

如果配置只需要普通字段,不必创建专用面板:

csharp
[ConfigGroup("Configs", 100)]
[CreateAssetMenu(menuName = "Game/Cfg_Simple", fileName = "Cfg_Simple")]
public sealed class SimpleCfg : ConfigSO
{
    [SerializeField] private int m_Value;
}

不添加 ConfigEditorAttribute 时,默认编辑器会遍历所有可见序列化字段,并锁定 m_Script。当配置需要列表操作、条件提示、清单预览或制作命令时,再使用自定义面板。

设计思路

配置数据、运行时加载和编辑器表现保持分离:

  • ConfigSO 保存可序列化数据。
  • 所属 Module/GameSystem 决定配置的加载时机和生命周期。
  • SuperCoreConfigEditor<T> 只提供制作体验,不承载业务逻辑。
  • Attribute 只描述发现和展示关系,避免运行时程序集引用 Editor 类型。

这种结构允许业务新增配置而不修改 SuperCoreKit 主窗口,也避免框架 Editor 程序集反向依赖具体业务类型。

注意事项

  • 重命名配置类型或自定义编辑器类型后,要同步 ConfigEditorAttribute 和资产中的字符串类型引用。
  • 同一类型存在多个资产时,SuperCoreKit 会全部显示;运行时是否允许多份由所属模块约束。
  • 固定路径配置不要复制第二份。Build 会校验 SuperCoreCfgModuleCfgResCfg 的唯一性。
  • Editor 配置放在 Editor 目录;需要进入 Player 的配置必须由 YooAsset 或 Resources 的既定路径收集。
  • 配置字段重命名后同步迁移资产数据,不通过旧字段兼容长期保留两套语义。

SuperCore 使用 MIT License 开源