vant

Unity 2022.3 LTS · URP 14 · HybridCLR

复杂度收敛,团队回到玩法。

Vant 是一套面向 Unity 2D 的模块化框架与工程工具链。它用唯一的 AppCore 组织模块生命周期, 用声明式依赖约束边界,用事件总线和资源租约隔离变化,让状态、资源与流程都变得可解释、可裁剪、可回归。

Philosophy

不追求万能容器,只约束关键边界

Vant 把框架能力放在少数几条稳定契约上:服务获取显式、模块依赖可排序、事件通信可解耦、资源生命周期可归还。业务可以自由生长,但不会失去可测试性。

单一 AppCore

进程内唯一应用 Core,模块经注册期绑定的只读 HostCore 取服务;引导期静态入口只作兜底,避免跨代和跨分区取错实例。

声明式 IModule

依赖先初始化,当前模块才启动;失败逆序回滚。Init、ReleaseNecessary 与 DisposeAsync 分阶段处理启动、快停与异步排空。

Notifier 解耦

枚举键控事件总线支持同步与异步派发、延迟派发、逆序遍历和逐监听器异常捕获;UI 或实体销毁后自动清理监听。

资源租约闭环

IAssetManager 统一 Resources 与 YooAsset 后端;Asset Lease、Instance Lease 与 Scene Lease 把引用、池化和卸载变成可归还的所有权。

FSM 驱动生命周期

顶层流程、UI 与实体状态都交给状态机:UI 有 11 态,实体有 6 态;每态携带取消令牌,关闭、缓存与销毁路径不再靠手工分支硬撑。

生成优先

MVC、UI、Model、Ability、Module 与 Skin 都由生成器产出;清单改动后重生成注册中心,检查器和防呆测试负责拦截漂移。

Architecture

从 AppCore 到业务节点,生命周期同源

框架节点与业务分区都挂在同一个运行时层级下。模块只声明依赖,容器负责拓扑排序;流程与场景通过稳定契约访问资源,不接触后端细节。

启动主干

AppCoreRuntime.Initialize选择后端、设置与名称,创建唯一 Core
ModuleManager.IncrementalInit快照模块,增量拓扑排序并闭环新注册
Procedure Pipeline检查版本、更新资源、加载热更、进入业务流程
DisposeAsync先 ReleaseNecessary 快停,再逆序排空销毁
register & consumeC#
// 业务组合根:模块注册后增量初始化
core.Register<ConfigManager>(() => new ConfigManager());
core.Register<UIManager>(() => new UIManager());
await core.IncrementalInit();

// 模块内部只使用注册期绑定的 HostCore
var assets = HostCore.Get<IAssetManager>();
var ui     = HostCore.Get<IUIManager>();

// 退出:先快停,再异步排空
core.ReleaseAllNecessary();
await core.DisposeAsync();

Module Matrix

可裁剪不是口号,而是清单与检查器

项目自有 module-manifest.json 是唯一真源;生成器产出 AOT / Hotfix 注册中心与业务门面,检查器负责哨兵、反向引用、簇完整性和注册数快照。

38

清单真源

模块名、宏、文件映射、契约、依赖、层级与注册方式登记在一处。

3

生成产物

ModuleRegistryAot、ModuleRegistryHotfix 与 BusinessCoreFacade 由清单生成。

117

防呆用例

参数化遍历清单,校验宏守卫、哨兵存在性和依赖对账。

15

CI 组合

全开基线、干净叶单裁、累积裁剪与预期失败组合共同防漂移。

Toolchain

把重复工程交还给生成器

Vant 不只约束运行时,也压缩从设计稿到预制体、从状态机到回归验证的距离。

代码生成器

MVC 实体、UI 面板、Model、Ability 与 Module 脚手架一次生成,避免样板漂移。

UI / Skin 工具

Reference Container 生成 Skin 三文件,Cached List / Grid 支持虚拟化列表。

AI 行为树

xNode 图编辑、循环检测、JSON 导出与运行时 Behavior Tree Runner 对接。

Figma → Prefab

manifest → IR 校验 → Prefab 构建的两阶段流水线,并保留引用容器配置。

资源安全

XTEA-CBC / AES 双算法、种子密钥与构建期加密钩子,敏感资产按目录处理。

GM 面板

分区命令面板集中注册与执行 GM 指令,属性扫描减少重复登记。

MCP 桥接

编辑器控制面板与标准化工具目录,让外部 agent 安全驱动资产与验证流程。

回归闭环

DebugProbe 探针、Vant MCP 工具与日志规范串起阶段化自动化验收。

Get started

把复杂度留在框架里,把时间还给玩法。

Vant 适合需要长期迭代的 Unity 2D 项目:模块可裁剪、生命周期确定、资源可归还、工具链可生成、回归可自动化。