Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
    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;
    }