单一 AppCore
进程内唯一应用 Core,模块经注册期绑定的只读 HostCore 取服务;引导期静态入口只作兜底,避免跨代和跨分区取错实例。
Philosophy
Vant 把框架能力放在少数几条稳定契约上:服务获取显式、模块依赖可排序、事件通信可解耦、资源生命周期可归还。业务可以自由生长,但不会失去可测试性。
进程内唯一应用 Core,模块经注册期绑定的只读 HostCore 取服务;引导期静态入口只作兜底,避免跨代和跨分区取错实例。
依赖先初始化,当前模块才启动;失败逆序回滚。Init、ReleaseNecessary 与 DisposeAsync 分阶段处理启动、快停与异步排空。
枚举键控事件总线支持同步与异步派发、延迟派发、逆序遍历和逐监听器异常捕获;UI 或实体销毁后自动清理监听。
IAssetManager 统一 Resources 与 YooAsset 后端;Asset Lease、Instance Lease 与 Scene Lease 把引用、池化和卸载变成可归还的所有权。
顶层流程、UI 与实体状态都交给状态机:UI 有 11 态,实体有 6 态;每态携带取消令牌,关闭、缓存与销毁路径不再靠手工分支硬撑。
MVC、UI、Model、Ability、Module 与 Skin 都由生成器产出;清单改动后重生成注册中心,检查器和防呆测试负责拦截漂移。
Architecture
框架节点与业务分区都挂在同一个运行时层级下。模块只声明依赖,容器负责拓扑排序;流程与场景通过稳定契约访问资源,不接触后端细节。
// 业务组合根:模块注册后增量初始化 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 注册中心与业务门面,检查器负责哨兵、反向引用、簇完整性和注册数快照。
模块名、宏、文件映射、契约、依赖、层级与注册方式登记在一处。
ModuleRegistryAot、ModuleRegistryHotfix 与 BusinessCoreFacade 由清单生成。
参数化遍历清单,校验宏守卫、哨兵存在性和依赖对账。
全开基线、干净叶单裁、累积裁剪与预期失败组合共同防漂移。
Toolchain
Vant 不只约束运行时,也压缩从设计稿到预制体、从状态机到回归验证的距离。
MVC 实体、UI 面板、Model、Ability 与 Module 脚手架一次生成,避免样板漂移。
Reference Container 生成 Skin 三文件,Cached List / Grid 支持虚拟化列表。
xNode 图编辑、循环检测、JSON 导出与运行时 Behavior Tree Runner 对接。
manifest → IR 校验 → Prefab 构建的两阶段流水线,并保留引用容器配置。
XTEA-CBC / AES 双算法、种子密钥与构建期加密钩子,敏感资产按目录处理。
分区命令面板集中注册与执行 GM 指令,属性扫描减少重复登记。
编辑器控制面板与标准化工具目录,让外部 agent 安全驱动资产与验证流程。
DebugProbe 探针、Vant MCP 工具与日志规范串起阶段化自动化验收。