public void DisappearFromEditor()
        {
            if (floorChunk == null)
            {
                ErrorManager.SpurtError("생성도 안됐는데 삭제를 불러와짐");
            }

            MapAndObjPool.GetInstance().TurnInPoolObj(floorChunk);

            floorChunk = null;
            spg        = null;

            for (int i = 0; i < objs.Count; i++)
            {
                if (objs[i] != null)
                {
                    MapAndObjPool.GetInstance().TurnInPoolObj(objs[i]);
                }
            }
            objs.Clear();

            isNowShowed = false;
        }
Example #2
0
        private void Start()
        {
            whatStage = StageManager.stageNum;

            MapAndObjPool.GetInstance().ChunkPoolInit(10);

            MapAndObjPool.GetInstance().obsBallPoolInit(10);
            MapAndObjPool.GetInstance().obsHuddlePoolInit(10);
            MapAndObjPool.GetInstance().obsUpperHuddle_1_PoolInit(10);
            MapAndObjPool.GetInstance().obsUpperHuddle_2_PoolInit(10);
            MapAndObjPool.GetInstance().obsUpperHuddle_3_PoolInit(10);
            MapAndObjPool.GetInstance().obsFirePoolInit(10);

            MapAndObjPool.GetInstance().itemHPPlusPoolInit(10);
            MapAndObjPool.GetInstance().itemInvinciblePoolInit(10);
            MapAndObjPool.GetInstance().itemShieldPoolInit(10);
            MapAndObjPool.GetInstance().itemCoinPoolInit(10);
            MapAndObjPool.GetInstance().itemMagnetPoolInit(10);
            MapAndObjPool.GetInstance().itemCoin_Parabola_PoolInit(10);
            MapAndObjPool.GetInstance().itemCoin_StraightLine_PoolInit(10);

            StartCoroutine(checkPos()); //부하를 줄이기 위해 0.2초 단위로 체크
        }
        public void showThisToEditor(int standardPos, float chunkMargin)
        {
            bornPos.z = (pos - standardPos) * chunkMargin;  //기준점 대응 현재 pos 값 얻음.


            switch (whichTurn)
            {
            case E_WhichTurn.LEFT:
                //왼쪽 으로 청크 풀링 해오기.
                floorChunk =
                    MapAndObjPool.GetInstance().GetTurnLeftChunksInPool();
                break;

            case E_WhichTurn.RIGHT:
                //오른쪽으로 청크 풀링
                floorChunk =
                    MapAndObjPool.GetInstance().GetTurnRightChunksInPool();
                break;

            case E_WhichTurn.NOT_TURN:
                floorChunk
                    = MapAndObjPool.GetInstance().GetChunkInPool();
                break;

            default: ErrorManager.SpurtError("위치턴이 아무것도 아닌 심각한 오류.");
                break;
            }
            floorChunk.transform.position = bornPos;
            floorChunk.SetActive(true);

            if (whichTurn == E_WhichTurn.NOT_TURN)
            {
                spg = floorChunk.transform.GetChild(3);
                FixedObjGenerator.FixedObjGen(spg, soa.spawnObjType, ref objs);
            }
            isNowShowed = true;
        }
Example #4
0
        public static GameObject ObjSpawnFactory(E_SPAWN_OBJ_TYPE typeOfObj, Transform spawnPoint)
        {
            GameObject spawned;

            switch (typeOfObj)
            {
            case E_SPAWN_OBJ_TYPE.BALL:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetObsBallInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.COIN:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemCoinInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.COIN_PARABOLA:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemCoin_Parabola_InPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.COIN_STRAIGHT:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemCoin_StraightLine_InPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.FIRE:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetObsFireInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.HPPLUS:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemHPPlusInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.HUDDLE:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetObsHuddleInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.INVINCIBLE:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemInvincibleInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.MAGNET:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemMagnetInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.NOTHING:
                spawned =
                    null;
                break;

            case E_SPAWN_OBJ_TYPE.SHIELD:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetItemShieldInPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_1:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetObsUpperHuddle_1_InPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetObsUpperHuddle_2_InPool(), spawnPoint);
                break;

            case E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3:
                spawned =
                    GenByPool(MapAndObjPool.GetInstance().GetObsUpperHuddle_3_InPool(), spawnPoint);
                break;

            default:
                ErrorManager.SpurtError("오브젝트 팩토리에서 에러");
                spawned = null;
                break;
            }
            return(spawned);
        }