Extenject
Extenject copied to clipboard
[Question] Injection on instantiated Scriptable Object from Game Object Context Installer
Hey guys, I'm stuck on something about Zenject/Extenject. Any one has any idea how I can fix that ? btw, sorry for filing an issue here, I can't get my answer from anywhere.
I have Player gameObject with Game Object Context which instantiate Character prefab by factory and Charcater has Game Object Context. In CharacterController which is a facade class on Character I instantiate a few Scriptable Objects in this way:
private readonly DiContainer _container;
public ZenjectResourceFactory(DiContainer container)
{
_container = container;
}
public Object Instantiate(Object @object)
{
Object instance = Object.Instantiate(@object);
_container.QueueForInject(instance);
return instance;
}
In the Character Installer CharacterBehavior and CharacterPowerup are bound by Container.Bind<CharacterBehaviorContext>().AsSingle().NonLazy(); and Container.Bind<CharacterPowerupContext>().AsSingle().NonLazy();
But the issue is CharacterBehavior and CharacterPowerup are not injected into those Scriptable Objects [Inject] methods.
you need to use Bind instead of Instantiate then container will inject Scriptable Objects automatically.