这个项目能做什么

VContainer 是专为 Unity 游戏引擎设计的高性能依赖注入(DI)库。它注重速度、最小内存分配和小巧的代码体积,是 Zenject 等其他 DI 框架的高效替代方案。 主要特性包括: - 快速解析:通常比 Zenject 快 5 到 10 倍。 - 零 GC 分配:解析实例不会产生垃圾回收开销(生成的实例除外)。 - 代码体积小:内部类型较少,虚方法调用最少。 - 正确的 DI 实践:简单透明的 API,并经过谨慎的功能取舍以避免复杂性。 - 不可变容器:确保线程安全和健壮性。 支持的注入类型包括:构造函数注入、方法注入、属性注入和字段注入。它还通过嵌套生命周期作用域提供灵活的作用域管理,支持异步,并集成 UniTask 和 ECS(测试版)。 可通过 UPM(Git URL)、OpenUPM 或手动导入 .unitypackage 进行安装。该库需要 Unity 2018.4 或更高版本。 基本用法是创建 LifetimeScope 并注册服务,然后自动解析这些服务。该库支持键控绑定、入口点(IStartable、IAsyncStartable),并支持为异步资源加载动态创建子作用域。 Unity Editor 中的诊断窗口可帮助可视化和调试容器的注册信息与依赖关系。 VContainer 的灵感来自 Zenject、Autofac 和 MicroResolver,并基于 MIT 许可证发布。