Unity 编辑器扩展基础设施
这不是一个单纯介绍 action-arcade 项目的作品页,而是一套基于
Unity 2022 UI Toolkit 封装的编辑器扩展基础设施。它面向的是复杂编辑器与
工具链开发场景:当界面进入多面板、多状态、多层级交互后,单靠命令式拼装
UXML 与事件绑定,维护成本会迅速上升,因此我把这部分能力收口成了一套可复用
的底层框架。
这套基础设施主要由三部分组成:模板系统、响应系统,以及建立在二者之上的 Q 组件体系。它的目标不是“做几个控件”,而是为 Unity 编辑器扩展提供一套 更接近现代前端开发体验的组织方式,让界面结构、状态变化和交互语义都能够被 明确建模,而不是散落在各类查询、回调和局部脚本里。
模板系统负责把 UXML、USS 与控制器收成统一的组件心智。它不是零散地去 “找节点、绑事件”,而是把结构、样式和逻辑当成同一个组件单元来组织,并通过 元数据与约定式装配减少样板代码。这样做的价值在于,编辑器界面不再只是 Unity 原生元素的拼接,而是具备了明确边界和复用语义的组件树。
响应系统则解决 UI Toolkit 在复杂编辑器中常见的“命令式胶水”问题。围绕状态 作为单一真源的思路,我引入了接近 Vue 3 的响应式原语与绑定机制,让界面更新 从“手动同步每一个控件”转为“状态变化驱动视图刷新”。这使得表单、列表、预览 与编辑会话等行为能够在统一状态模型下协同工作,显著降低了维护和扩展成本。

在此基础上,我进一步抽象出一组面向编辑器场景的 Q 组件。它们不是对原生控件 的简单包裹,而是将统一的布局语义、交互语义、样式语义与绑定方式沉淀下来, 让输入框、按钮、对话框、表单容器等都遵循同一套框架协议。这样一来,业务层 实现的是“编辑器界面”,而不是反复处理控件细节。
这套基础设施目前已经用于支撑行为树编辑器、角色编辑器等自研工具。对我来说, 它的价值不只是做出几个可用界面,而是在 Unity 2022 UI Toolkit 之上建立一层 更适合长期演进的工程抽象:模板系统负责组织结构,响应系统负责组织状态, Q 组件负责组织交互与复用。
技术栈以 Unity 2022 + C# + UI Toolkit 为主,重点不在运行时游戏逻辑,而在 编辑器扩展、内部工具链与复杂界面基础设施的设计与实现。
