示例#1
0
 private void Awake()
 {
     container = new Container();
     factory   = new Factory(container);
     factory.Create <RuntimeInput>();
     container.ResolveDependecies(actorController);
     GameObject go = factory.Instantiate(actorPrefab);
 }
示例#2
0
        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);
        }