我正在使用Zenject框架,并且我对一个类使用了多个GameObject,但我不知道如何使用Zenject Container来实现。下面是我的代码:
private GameObject _canvas;
private GameObject _mainWindow;
private GameObject _createAccountWindow;
void Awake()
{
_mainWindow = GameObject.FindGameObjectWithTag("MainWindow");
_canvas = GameObject.FindGameObjectWithTag("Canvas");
_createAccountWindow = GameObjectExtensions.FindObject(_canvas, "CreateAccountWindow");
}可以从Zenject Container注入这些对象吗?如果是,我该怎么做呢?
发布于 2016-09-24 21:54:28
使用Zenject,这些类将像这样被注入:
[Inject]
GameObject _canvas;
[Inject]
GameObject _mainWindow;
[Inject]
GameObject _createAccountWindow;然而,当你使用DI时,它通常是基于类型注入的,所以让它们都是'GameObject‘类型会使这变得很困难。
但是如果你把它做成这样:
[Inject]
Canvas _canvas;
[Inject(Id = "MainWindow")]
RectTransform _mainWindow;
[Inject(Id = "CreateAccountWindow")]
RectTransform _createAccountWindow;然后,还要向这些组件中的每一个添加ZenjectBinding组件,并为ZenjectBinding的Identifier属性添加值,这样它就应该可以工作了。(我假设他们已经在这里启动的场景中)
https://stackoverflow.com/questions/39675451
复制相似问题