c# unity3d dependency-injection inversion-of-control zenject

c# - Inyección de Zenject GameObject



unity3d dependency-injection (1)

Usando Zenject, esas clases serían inyectadas así:

[Inject] GameObject _canvas; [Inject] GameObject _mainWindow; [Inject] GameObject _createAccountWindow;

Sin embargo, cuando usas DI, generalmente se inyecta según el tipo, por lo que tenerlos a todos ser tipo ''GameObject'' hará que esto sea difícil.

Pero si lo haces algo así:

[Inject] Canvas _canvas; [Inject(Id = "MainWindow")] RectTransform _mainWindow; [Inject(Id = "CreateAccountWindow")] RectTransform _createAccountWindow;

Luego también agregue los componentes ZenjectBinding a cada uno de estos y agregue un valor para la propiedad Identificador de ZenjectBinding, luego debería funcionar. (Supongo que ya están en la escena al inicio aquí)

Estoy usando Zenject framework y estoy usando múltiples GameObject para una clase, pero no sé hacerlo usando Zenject Container. Aquí está mi código:

private GameObject _canvas; private GameObject _mainWindow; private GameObject _createAccountWindow; void Awake() { _mainWindow = GameObject.FindGameObjectWithTag("MainWindow"); _canvas = GameObject.FindGameObjectWithTag("Canvas"); _createAccountWindow = GameObjectExtensions.FindObject(_canvas, "CreateAccountWindow"); }

¿Es posible inyectar estos objetos desde Zenject Container? Si es así, ¿cómo puedo hacer eso?