Zenject GameObject Injection
本文关键字:Injection GameObject Zenject | 更新日期: 2023-09-27 18:08:40
我正在使用Zenject框架,我正在使用多个GameObject
类,但我不知道使用Zenject容器。下面是我的代码:
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的Identifier属性添加一个值,然后它应该可以工作。