unity游戏引擎- Zenject全局绑定



我很清楚这可能不是问Zenject问题的最佳地点。我已经在Zenject的google群组页面上发布了同样的问题。我在这里发布这篇文章,认为有人在这里(谁不在谷歌组)可能能够帮助我。

我有一个关于全局绑定的问题。

我的AR应用目前有几个不同的屏幕(保存为场景)。每个场景都可以独立运行,这样我就可以把它划分得很清楚。当我按下"Screen1"上的按钮时,它会加载"Screen2",以此类推。我在使用一个非常基本的AppDelegate,它包含一个NavigationController类,它处理所有的UGUI过渡,所以它看起来像一个正常的基于iOS导航的应用。我在所有的安装程序上注入AppDelegate作为Singleton,但由于个别屏幕(场景)有单独的CompositionRoots,所以全局上它们不是作为Singleton注入的。

有办法做到这一点吗?在整个应用中都有单例注入,但有不同的组成根?

如果没有,如何使用全局组合根?我已经按照指南中的说明创建了一个全局组合根,并将安装程序添加为预制件等等。我也从场景中删除了安装程序。但是当我玩的时候什么都没有发生。我错过了什么明显的东西吗?

Resources文件夹中创建一个项目上下文预制件如何使项目上下文预制。

你还必须在你的场景中包含一个"SceneContext"。这会生成第一个"ProjectContext"。

创建上述对象后,它将加载到任何场景开始。以及预制件上提供的安装程序和可脚本对象安装程序。与单例绑定一起,例如:

Container.Bind<IFoo>().To<Foo>().AsSingle().NonLazy();

这意味着,在zenject初始化时,你将有一个单例实例准备就绪并等待。

最新更新