Skip to content

UI Generator

UI Generator 用于创建 UI Window/Widget 预制体,并根据节点命名生成 Logic 和 Binding 两部分脚本。Logic 只在第一次创建,Binding 可以反复覆盖,因此界面结构变更后可以安全重新生成绑定代码。

打开方式:Unity Toolbar 的 EditorWindow / UI Generator。如果打开前在 Project 中选中了合法 UI Prefab,窗口会自动带入选择。

UI Generator 窗口

固定配置:

text
Assets/SuperCore/Editor/Cfg_UIWindowGenerator.asset

配置缺失时,显式打开 UI Generator 会在固定路径创建默认资产;也可以从 Create / SuperCore / Cfg_UIWindowGenerator 创建。配置页位于 SuperCoreKit 的 EditorConfig / UIGenerator

子功能

生成与覆盖规则

Window:

text
UIBagWindow.cs          // Logic,存在时不覆盖
UIBagWindow.Binding.cs  // Binding,每次重新生成

Widget 同样拆成 Logic 与 Binding。所有生成脚本使用 UTF-8 无 BOM,并带 Demo 的 Super Core 版权头。

重新生成时:

  • Logic 已存在则保留业务代码。
  • 旧 Binding 删除并重新写入。
  • 嵌套 Widget 会递归生成自己的 Binding。
  • 生成完成后刷新 AssetDatabase。

删除

选择已生成 Prefab 后,Delete 会先列出并确认以下路径:

  • 当前 Prefab。
  • 对应 Logic 脚本。
  • 对应 Binding 脚本。

路径只从当前 Window/Widget 类型和配置目录推导,不全项目扫描同名文件。确认后使用 AssetDatabase.DeleteAsset 删除存在的目标。删除是破坏性操作,确认弹窗中的完整列表应逐项检查。

设计思路

  • Prefab 是层级和序列化组件的源数据。
  • Binding 是可重复生成的机械代码。
  • Logic 是业务代码,生成后归开发者维护。
  • 节点命名规则与组件映射由配置决定,生成器不把业务组件写死。
  • Window Options 跟随生成的窗口类型,避免另建重复清单。

注意事项

  • 修改 Component Marker 或 Key 会影响所有后续扫描,存量 Prefab 需要同步重命名。
  • 同一 Prefab 中不要生成重复字段名。
  • 移动输出目录后同步 asmdef、YooAsset Collector、AssetLabelCfg Folders 和命名规则。
  • Binding 可以覆盖,Logic 不会覆盖;模板升级不会自动改写已有 Logic。
  • 删除前确认范围;工具不会为错误目录猜测备用路径。
  • 生成后等待 Unity 编译完成,再执行“添加 Widget 组件”。

SuperCore 使用 MIT License 开源