예제 #1
0
    //다음 스테이지로 넘어가는 버튼
    public void NextButton()
    {
        SoundManager.instance.PlaySFX("Click_2");

        StageManager.instance.go_Player.SetActive(false);

        //일반 스테이지라면
        if (StageManager.instance.currentStageSlot != null)
        {
            SoundManager.instance.PlayBGM("BGM_6");

            stageClearUI.S_DeactiveClearUI();

            Destroy(StageManager.instance.currentStage.gameObject);

            //다음 스테이지가 일반 스테이지라면
            if (StageManager.instance.currentStageSlot.stageNumber + 1 != stageSlots.Length)
            {
                StageManager.instance.currentStageSlot = stageSlots[StageManager.instance.currentStageSlot.stageNumber + 1];
                StageManager.instance.currentStage     = Instantiate(StageManager.instance.currentStageSlot.go_StagePrefab, new Vector3(0, 0, 0), Quaternion.identity).GetComponent <Stage>();
            }
            //다음 스테이지가 보스 스테이지라면
            else
            {
                SoundManager.instance.PlayBGM("BGM_3");

                StageManager.instance.currentStageSlot     = null;
                StageManager.instance.currentStage         = null;
                StageManager.instance.currentBossStageSlot = bossStageSlot;
                StageManager.instance.panaltyPoint         = 0;

                if (StageManager.instance.currentBossStageSlot.bossStageType == BossStageSlot.BossStageType.StageRandom)
                {
                    StageManager.instance.currentBossStage = Instantiate(StageManager.instance.currentBossStageSlot.go_BossStageNormals[Random.Range(0, StageManager.instance.currentBossStageSlot.go_BossStageNormals.Length)]
                                                                         , new Vector3(0, 0, 0), Quaternion.identity).GetComponent <BossStage>();
                }
                else
                {
                    StageManager.instance.currentBossStage = Instantiate(StageManager.instance.currentBossStageSlot.go_BossStageNormals[0]
                                                                         , new Vector3(0, 0, 0), Quaternion.identity).GetComponent <BossStage>();
                }

                if (StageManager.instance.currentBossStageSlot.currentHp <= 0)
                {
                    stageClearUI.BS_DeactiveClearUI();
                }
                else
                {
                    youDiedUI.BS_DeactiveYouDiedUI();
                }
            }
        }
        //보스 스테이지면
        else
        {
            SoundManager.instance.PlayBGM("BGM_6");

            stageClearUI.BS_DeactiveClearUI();
            Destroy(StageManager.instance.currentBossStage.gameObject);
            StageManager.instance.currentBossStageSlot = null;
            StageManager.instance.currentBossStage     = null;

            for (int i = 0; i < stageSlots.Length; i++)
            {
                stageSlots[i] = null;
            }

            StageManager.instance.currentChapter++;

            //다음 챕터의 슬롯들을 할당해준다.
            for (int i = 0; i < chapterSelectUI.allStageSlot[StageManager.instance.currentChapter - 1].stageSlots.Length; i++)
            {
                stageSlots[i] = chapterSelectUI.allStageSlot[StageManager.instance.currentChapter - 1].stageSlots[i];
            }
            chapterSelectUI.go_CurrentChapterUI = chapterSelectUI.go_Chapters[StageManager.instance.currentChapter - 1];
            bossStageSlot = chapterSelectUI.allStageSlot[StageManager.instance.currentChapter - 1].bossStageSlot;

            StageManager.instance.currentStageSlot = stageSlots[0];
            StageManager.instance.currentStage     = Instantiate(StageManager.instance.currentStageSlot.go_StagePrefab, new Vector3(0, 0, 0), Quaternion.identity).GetComponent <Stage>();
        }
    }