public PoolController GetPoolController(Fsm fsm, bool createIfNotFound) { PoolController poolCtrl = null; switch (from) { case FromType.Owner: if (fsm == null) { return(null); } if (fsm.Owner == null) { return(null); } poolCtrl = fsm.Owner.GetComponent <PoolController>(); if (!poolCtrl && createIfNotFound) { poolCtrl = fsm.Owner.gameObject.AddComponent <PoolController>(); } break; case FromType.GameObject: if (gameObject == null) { return(null); } if (gameObject.IsNone || gameObject.Value == null) { return(null); } poolCtrl = gameObject.Value.GetComponent <PoolController>(); if (!poolCtrl && createIfNotFound) { poolCtrl = gameObject.Value.AddComponent <PoolController>(); } break; case FromType.Group: if (groupName == null) { return(null); } if (groupName.IsNone || string.IsNullOrEmpty(groupName.Value)) { return(null); } poolCtrl = PoolController.GetPool(groupName.Value); if (!poolCtrl && createIfNotFound) { poolCtrl = PoolController.CreatePool(groupName.Value); } break; } return(poolCtrl); }
void CreatePlayField() { objective.Build(800f, 1f + 90f * level); pool.CreatePool(); for (int i = 0; i < 8; i++) { GameObject obj = pool.CreateObject(0); // create a barrier obj.transform.localRotation = Quaternion.AngleAxis(i * 45f, Vector3.up); obj.transform.localPosition = Vector3.zero; obj.transform.Translate(Vector3.forward * 2.4f * obj.transform.lossyScale.x); obj.GetComponent <BarrierController>().Build(100f); //debugText.text = obj.ToString(); } for (int i = 0; i < 12; i++) { GameObject obj = pool.CreateObject(0); // create a barrier obj.transform.localRotation = Quaternion.AngleAxis(i * 30f, Vector3.up); obj.transform.localPosition = Vector3.zero; obj.transform.Translate(Vector3.forward * 3.6f * obj.transform.lossyScale.x); obj.GetComponent <BarrierController>().Build(100f); //debugText.text = obj.ToString(); } for (int i = 0; i < 16; i++) { GameObject obj = pool.CreateObject(0); // create a barrier obj.transform.localRotation = Quaternion.AngleAxis(i * 22.5f, Vector3.up); obj.transform.localPosition = Vector3.zero; obj.transform.Translate(Vector3.forward * 4.8f * obj.transform.lossyScale.x); obj.GetComponent <BarrierController>().Build(100f); //debugText.text = obj.transform.localPosition.ToString(); } active = true; }