Exemplo n.º 1
0
    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");
    }
Exemplo n.º 2
0
    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);
            }
        }
    }