예제 #1
0
        public void ChangeObj(int objNum, E_SPAWN_OBJ_TYPE changingType)
        {
            if (floorChunk == null)
            {
                ErrorManager.SpurtError("생성도 안됐는데 오브젝트를 바꾸려함.");
            }

            if (false == UpperHuddleCheck(objNum, changingType, soa))
            {
                Debug.Log("어퍼허들 체크에서 삑살.");
                return;
            }

            if (whichTurn != E_WhichTurn.NOT_TURN)
            {
                Debug.Log("회전 청크인데 오브젝트를 체인지 하려고함.");
                return;
            }

            for (int i = 0; i < objs.Count; i++)
            {
                if (objs[i] != null)
                {
                    MapAndObjPool.GetInstance().TurnInPoolObj(objs[i]);
                }
            }
            objs.Clear();//참조만 날라감. 괜찮음.

            soa.spawnObjType[objNum] = changingType;

            spg = floorChunk.transform.GetChild(3);

            FixedObjGenerator.FixedObjGen(spg, soa.spawnObjType, ref objs);
        }
예제 #2
0
        //얘들 나중에 인터페이스로 뺼까 말까 한번 고민해보자.
        //아니면 콜백을 걸어놓든지.
        public void ChangeObjThisChunk(int spawnPointNum, E_SPAWN_OBJ_TYPE objType)
        {
            StageEditorST sest = FindEditSTByPos(position);

            if (sest == null)
            {
                ErrorManager.SpurtError("절대 있을 수 없는 , 호출을 잘못한 듯.");
            }

            sest.ChangeObj(spawnPointNum, objType);
        }
예제 #3
0
        bool UpperHuddleCheck(int spawnPointNum, E_SPAWN_OBJ_TYPE changingType, StageObjArr soa)
        {
            //검증단계
            if (spawnPointNum == 1)
            {
                if (soa.spawnObjType[0] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2 || soa.spawnObjType[0] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3)
                {
                    return(false);
                }

                if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3)
                {
                    return(false);
                }
            }
            if (spawnPointNum == 2)
            {
                if (soa.spawnObjType[1] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2 || soa.spawnObjType[1] == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3)
                {
                    return(false);
                }

                if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3 || changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2)
                {
                    return(false);
                }
            }



            if (spawnPointNum == 0) //보정 단계
            {
                if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2)
                {
                    soa.spawnObjType[1] = E_SPAWN_OBJ_TYPE.NOTHING;
                }
                if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3)
                {
                    soa.spawnObjType[1] = E_SPAWN_OBJ_TYPE.NOTHING;
                    soa.spawnObjType[2] = E_SPAWN_OBJ_TYPE.NOTHING;
                }
            }
            else if (spawnPointNum == 1)
            {
                if (changingType == E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2)
                {
                    soa.spawnObjType[2] = E_SPAWN_OBJ_TYPE.NOTHING;
                }
            }
            return(true);
        }
예제 #4
0
        public void OnObjClick(Button btn)
        {
            if (nowChangeObjNum == -1)
            {
                ErrorManager.SpurtError("스폰 넘버 로직 오류!");
            }
            E_SPAWN_OBJ_TYPE spawnType = E_SPAWN_OBJ_TYPE.NOTHING;

            //버튼 이름으로 분기해서
            switch (btn.name)
            {
            case "Magnet":
                spawnType = E_SPAWN_OBJ_TYPE.MAGNET;
                break;

            case "Shield":
                spawnType = E_SPAWN_OBJ_TYPE.SHIELD;
                break;

            case "Invincible":
                spawnType = E_SPAWN_OBJ_TYPE.INVINCIBLE;
                break;

            case "Hp":
                spawnType = E_SPAWN_OBJ_TYPE.HPPLUS;
                break;

            case "Coin":
                spawnType = E_SPAWN_OBJ_TYPE.COIN;
                break;

            case "Btn_CoinStraight":
                spawnType = E_SPAWN_OBJ_TYPE.COIN_STRAIGHT;
                break;

            case "Btn_CoinParabola":
                spawnType = E_SPAWN_OBJ_TYPE.COIN_PARABOLA;
                break;


            case "Btn_Huddle":
                spawnType = E_SPAWN_OBJ_TYPE.HUDDLE;
                break;

            case "Btn_Ball":
                spawnType = E_SPAWN_OBJ_TYPE.BALL;
                break;

            case "Btn_Fire":
                spawnType = E_SPAWN_OBJ_TYPE.FIRE;
                break;

            case "Btn_Upper_1":
                spawnType = E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_1;
                break;

            case "Btn_Upper_2":
                spawnType = E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_2;
                break;

            case "Btn_Upper_3":
                spawnType = E_SPAWN_OBJ_TYPE.UPPER_HUDDLE_3;
                break;
            }
            sem.ChangeObjThisChunk(nowChangeObjNum, spawnType);
            ShowReset();
        }
예제 #5
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);
        }
예제 #6
0
 public StageObjArr(E_SPAWN_OBJ_TYPE obj1st, E_SPAWN_OBJ_TYPE obj2nd, E_SPAWN_OBJ_TYPE obj3rd)
 {
     spawnObjType[0] = obj1st;
     spawnObjType[1] = obj2nd;
     spawnObjType[2] = obj3rd;
 }
예제 #7
0
        public static void EnqueStageObjs(E_SPAWN_OBJ_TYPE obj1st, E_SPAWN_OBJ_TYPE obj2nd, E_SPAWN_OBJ_TYPE obj3rd)
        {
            StageObjArr tempObjQue = new StageObjArr(obj1st, obj2nd, obj3rd);

            objQueue.Enqueue(tempObjQue);
        }