// 레벨과 스테이지의 정보를 세팅한다. public void LevelStageInfoSetting() { // 스테이지의 개수를 가져온다. (자식 오브젝트들의 개수를 구함) int childCount = GameObject.Find(MyPath.gameScreen_Maps).gameObject.transform.childCount; GameObject[] maps = new GameObject[childCount]; maps = GameObject.FindGameObjectsWithTag("Map"); // 존재 하고 있는 스테이지의 GameObject를 가져옴. for (int i = 0; i < maps.Length; i++) { //Debug.Log("name : " + maps[i].name + "level : " + maps[i].GetComponent<MapInfo>().myLevel + " stage : " + maps[i].GetComponent<MapInfo>().myStage); } levelStageInfo = new LevelStageInfo[maps.Length]; //존재하고 있는 스테이지의 개수만큼 동적으로 할당받는다. //Debug.Log("levelStageInfo 할당 개수 : " + levelStageInfo.Length); SettingPlayerInfo(); //Test i는 0으로 바꾸셈 for (int i = 0; i < levelStageInfo.Length; i++) { levelStageInfo[i] = new LevelStageInfo(); //인스턴스 할당 // 레벨, 스테이지, 오브젝트를 초기화 levelStageInfo[i].level = maps[i].GetComponent <MapInfo>().myLevel; levelStageInfo[i].stage = maps[i].GetComponent <MapInfo>().myStage; levelStageInfo[i].obj = maps[i]; } SettingStageSuccessState(); // 스테이지의 성공 플래그를 설정한다. }
// 이미지의 상태를 바꾼다. public void ChangeUIImage(LevelStageInfo myLevelStageInfo) { if (myLevelStageInfo.isSuccess == true) // 클리어 한 상태면 { SetUnLockState(); //잠긴 상태로 바꿈 } else if (myLevelStageInfo.isSuccess == false) // 클리어 하지 않은 상태면 { SetLockState(); // 풀린 상태로 바꿈 } }
// 해당 레벨과 스테이지 값에 일치하는 레벨과 스테이지의 정보 오브젝트를 반환한다. public LevelStageInfo GetLevelStageInfoObj(short level, short stage) { for (int i = 0; i < levelStageInfo.Length; i++) { if (level == levelStageInfo[i].level && stage == levelStageInfo[i].stage) { LevelStageInfo tempLSInfo = new LevelStageInfo(); tempLSInfo = levelStageInfo[i]; return(tempLSInfo); } } return(null); }