Zenject 游戏对象注入
Zenject GameObject Injection
我正在使用 Zenject 框架,我正在为一个 class 使用多个 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 容器中注入这些对象?如果是,我该怎么做?
使用 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 的标识符 属性 添加一个值,然后它应该可以工作。 (我假设他们在启动时已经在现场)
我正在使用 Zenject 框架,我正在为一个 class 使用多个 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 容器中注入这些对象?如果是,我该怎么做?
使用 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 的标识符 属性 添加一个值,然后它应该可以工作。 (我假设他们在启动时已经在现场)