action-arcade

action-arcade 是一套基于 Unity UI Toolkit 的自研声明式 UI 组件系统, 它的服务对象是自研编辑器扩展与编辑器工具链:工程内的行为树 (Zhujing.BehaviorTree)等工具,其多面板、多轨道编辑器界面均构建于 这套系统之上。

组件系统的核心是一套自研的 Vue 3 风格响应系统:针对 Unity UI Toolkit 编辑器扩展开发中命令式胶水代码的问题(频繁的 Q<T>() 查询、手动回调注册), 引入类似 Vue 3 的响应式原语——状态作为单一数据源,变更自动派发并驱动 绑定界面刷新;声明式绑定让数据与视图双向同步,逻辑与视图彻底解耦。

组件采用单文件组件(SFC)规范封装——结构(UXML)、样式(USS)与逻辑 控制器作为一个黑盒整体,对外仅通过 Props 与 Events 通信;并引入元数据 驱动:通过特性(Attribute)标记,框架在初始化阶段自动完成节点注入与 事件绑定,消灭模板代码。针对多态数据列表(如 Timeline 多轨道、行为节点), 建立「类型 → 组件工厂」注册表,按运行时类型动态匹配模板渲染,新增数据 类型无需改动容器逻辑。

QBtn 是基于这套规范实现的一个具体组件——按 SFC 封装、对外暴露 Props 与 Events、内部状态由响应系统驱动刷新。它演示了组件系统的接入方式: 在编辑器扩展中声明数据、挂载组件、接收事件,即可获得一块可复用界面。

QBtn 组件示例
QBtn 组件

技术栈:Unity(C# / UI Toolkit)编辑器扩展开发为主,全链路均为自研工具与框架支撑。

自研 UI 组件系统驱动的编辑器工具界面
组件系统驱动的编辑器工具界面