UIManager스크립트 수정

보스 스테이지의 마지막 기능입니다. 보스를 쓰러뜨리고 열쇠로 문을 열고 나가면  "GAME CLEAR" 표시하고 게임을 종료합니다. 게임 클리어 표시는 UIManager 스크립트에서 처리합니다.

UIManager.cs
0.00MB

GameClear()

doorNumber가 100이면 게임 클리어로 판단돼 Exit스크립트에서 호출됩니다. 보스 방 맨 안쪽 문의 doorNum를 100으로 설정합니다.

//게임 클리어
public void GameClear()
{
    //화면 표시
    mainImage.SetActive(true);
    mainImage.GetComponent<Image>().sprite = gameClearSpr;//「GAMR CLEAR」 설정
    //조작 UI 숨기기
    inputPanel.SetActive(false);
    //게임 클ㄹ어 
    PlayerController.gameState = "gameclear";
    //3초 뒤에 타이틀 화면으로 이동
    Invoke("GoToTitle", 3.0f);
}

GoToTitle()

//타이틀 화면으로 돌아가기
void GoToTitle()
{
    PlayerPrefs.DeleteKey("LastScene");     //저장되어있는 씬을 제거
    SceneManager.LoadScene("Title");        //타이틀 씬으로 돌아가기
}

Exit스크립트 수정

doorNumber가 100이면 게임 클리어로 판단돼 Exit스크립트에서 호출합니다. 그렇지 않으면 원래대로 처리합니다.

private void OnTriggerEnter2D(Collider2D collision){
    if (collision.gameObject.tag == "Player") {
        if (doorNumber == 100)   {
            //BGM 정지
            SoundManager.soundManager.StopBgm();
            //SE 재생 (게임 클리어)
            SoundManager.soundManager.SEPlay(SEType.GameClear);
            //게임 클리어
            GameObject.FindObjectOfType<UIManager>().GameClear();
        } else  {
            string nowScene = PlayerPrefs.GetString("LastScene");
            SaveDataManager.SaveArrangeData(nowScene); // 배치데이터 저장
            RoomManager.ChangeScene(sceneName, doorNumber);
        }
    }
}

 

+ Recent posts