public static void Save_ClearData() { Data_clear data_clear = new Data_clear(); data_clear.chapters = new List <ChapterData_clear>(); //save chapter data for (int i = 0; i < Database.Chapters.Count; i++) { ChapterData_clear chapterData_clear = new ChapterData_clear(); chapterData_clear.stages = new List <StageData_clear>(); chapterData_clear.isClear = Database.Chapter_List[i].GetIsClear(); //save stage data for (int j = 0; j < Database.Chapters[i].Count; j++) { StageData_clear stageData_clear = new StageData_clear(); stageData_clear.isClear = Database.Chapters[i][j].GetComponent <Stage>().IsClear(); stageData_clear.score = Database.Chapters[i][j].GetComponent <Stage>().GetScore(); chapterData_clear.stages.Add(stageData_clear); } data_clear.chapters.Add(chapterData_clear); } DataManager.BinarySerialize <Data_clear>(data_clear, Application.persistentDataPath + "/Data_Clear.sav"); }
private void Load_ClearData() { data_clear = DataManager.BinaryDeserialize <Data_clear>(Application.persistentDataPath + "/Data_Clear.sav"); if (data_clear != null) { for (Database.FocusChapter = 0; Database.FocusChapter < data_clear.chapters.Count; Database.FocusChapter++) { for (Database.FocusStage = 0; Database.FocusStage < data_clear.chapters[Database.FocusChapter].stages.Count; Database.FocusStage++) { //Stage: Score 저장 Database.Stage.GetComponent <Stage>().SetScore(data_clear.chapters[Database.FocusChapter].stages[Database.FocusStage].score); //ClearStage의 다음 Btn_Stage까지 interactable if (data_clear.chapters[Database.FocusChapter].stages[Database.FocusStage].isClear) { if (Database.FocusStage + 1 < data_clear.chapters[Database.FocusChapter].stages.Count) { Database.Btn_AllStages[Database.FocusChapter][Database.FocusStage + 1].GetComponent <Button>().interactable = true; } else if (Database.FocusChapter + 1 < data_clear.chapters.Count) { Database.Btn_Chapters[Database.FocusChapter + 1].GetComponent <Button>().interactable = true; Database.Btn_AllStages[Database.FocusChapter + 1][0].GetComponent <Button>().interactable = true; } //StageScene에서 Score SetActive Database.Stage.GetComponent <Stage>().SetActiveStageScore(); } //Stage: Clear했는지 저장 Database.Stage.GetComponent <Stage>().SetIsClear(data_clear.chapters[Database.FocusChapter].stages[Database.FocusStage].isClear); } //Chapter 점수 계산 Database.Chapter.CalcScore(Database.FocusChapter); if (Database.FocusChapter == 0 || data_clear.chapters[Database.FocusChapter].isClear || data_clear.chapters[Database.FocusChapter - 1].isClear == true) { //Btn 활성화 Database.Btn_Chapters[Database.FocusChapter].GetComponent <Button>().interactable = true; } //ChapterScene에서 clear한 Chapter의 Score txt 설정 Database.Chapter.UpdateChapterScoreTxt(); //Chapter: Clear했는지 저장 Database.Chapter.SetIsClear(data_clear.chapters[Database.FocusChapter].isClear); } } }