It is used to instantiate objects derived from MonoBehaviour. When inheriting this class, the objects and parameters to be created must be defined as types.
Copy public class Installer : GameObjectInstaller
{
public override void Install ( DIContainer container)
{
container .BindFactory < FooItem . Factory > ();
}
}
public class SampleClass : MonoInjecter
{
[ Inject ]
private readonly FooItem . Factory _fooItemFactory;
[ SerializeField ]
private FooItem _fooItemPrefab;
protected override void Awake ()
{
base.Awake();
FooItem fooItem = _fooItemFactory .Create(_fooItemPrefab , "Sample string" );
}
}
public class FooItem : MonoBehaviour , IFactorable < string >
{
[ Inject ]
private readonly Foo _foo;
public void InitializeFactory ( string variable)
{
Debug .Log( $"{ _foo . index }: String variable is: {variable}" );
}
public class Factory : SeparatedGameObjectFactory < FooItem , string > { }
}