/// <summary> /// 스테이지 구성을 위해서 구성정보를 로드한다. /// </summary> /// <param name="nStage">스테이지 번</param> public StageInfo LoadStage(int nStage) { StageInfo stageInfo = StageReader.LoadStage(nStage); if (stageInfo != null) { Debug.Log(stageInfo.ToString()); } return(stageInfo); }
/// <summary> /// 스테이지 구성을 위해서 구성정보를 로드한다. /// </summary> /// <param name="nStage"> 스테이지 번호</param> /// <returns></returns> public static StageInfo LoadStage(int nStage) { Debug.Log($"Load Stage : Stage/{GetFileName(nStage)}"); //1. 리소스 파일에서 텍스트를 읽어온다. TextAsset textAsset = Resources.Load <TextAsset>($"Stage/{GetFileName(nStage)}"); if (textAsset != null) { //2. JSON 문자열을 객체(StageInfo)로 변환한다. StageInfo stageInfo = JsonUtility.FromJson <StageInfo>(textAsset.text); //3. 변환된 객체가 유효한지 체크한다(only Debugging) Debug.Assert(stageInfo.DoValidation()); return(stageInfo); } return(null); }
/// <summary> /// 주어진 크기의 Stage를 생성하고, Stage를 구성하는 보드의 Cell과 Block을 구성한다 /// </summary> /// <returns>생성된 Stage 객체</returns> public Stage ComposeStage() { Debug.Assert(m_nStage > 0, $"Invalide Stage : {m_nStage}"); //0. 스테이지 정보를 로드한다.(보드 크기, Cell/블럭 정보 등) m_StageInfo = LoadStage(m_nStage); //1. Stage 객체를 생성한다. Stage stage = new Stage(this, m_StageInfo.row, m_StageInfo.col); //2. Cell,Block 초기 값을 생성한다. for (int nRow = 0; nRow < m_StageInfo.row; nRow++) { for (int nCol = 0; nCol < m_StageInfo.col; nCol++) { stage.blocks[nRow, nCol] = SpawnBlockForStage(nRow, nCol); stage.cells[nRow, nCol] = SpawnCellForStage(nRow, nCol); } } return(stage); }