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); }
//얘들 나중에 인터페이스로 뺼까 말까 한번 고민해보자. //아니면 콜백을 걸어놓든지. public void ChangeObjThisChunk(int spawnPointNum, E_SPAWN_OBJ_TYPE objType) { StageEditorST sest = FindEditSTByPos(position); if (sest == null) { ErrorManager.SpurtError("절대 있을 수 없는 , 호출을 잘못한 듯."); } sest.ChangeObj(spawnPointNum, objType); }
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); }
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(); }
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); }
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; }
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); }