private void Awake() { container = new Container(); factory = new Factory(container); factory.Create <RuntimeInput>(); container.ResolveDependecies(actorController); GameObject go = factory.Instantiate(actorPrefab); }
public GameObject Instantiate(GameObject prefab) { GameObject go = GameObject.Instantiate(prefab); MonoBehaviour[] monoBehaviours = go.GetComponentsInChildren <MonoBehaviour>(); foreach (MonoBehaviour monoBehaviour in monoBehaviours) // First checks registering { if (monoBehaviour.HasAttributeOfType(typeof(RegisterAttribute))) { container.Register(monoBehaviour); } } foreach (MonoBehaviour monoBehaviour in monoBehaviours) // After checks dependencies { container.ResolveDependecies(monoBehaviour); } return(go); }