PlayerPrefs 응용하기

네,가능합니다 ㅣ 2024. 9. 11. 19:52

카드 뒤집기 게임을 계속해서 만들고있다....

 

PlayerPrefs를 활용한 코드들을 주석을 달아가며 복습해보자

 

아래는 스테이지 확인을 위해 스테이지를 클리어하면 PlayerPrefs 를 이용해 데이터를 저장하는 코드이다.

 

   public void EndGame() // EndGame 함수가 실행되면
   {
       int stageLvl = StageButton.stageLevel; // 스테이지 레벨 체크

       if (stageLvl == 1) // 1이면
       {
           RandomCard();
           PlayerPrefs.SetInt("NormalModeCleared", 1); // NormalModeCleared 에 1저장
           PlayerPrefs.Save();// 데이터저장
       }
       else if (stageLvl == 2)
       {
           RandomCard();
           PlayerPrefs.SetInt("HardModeCleared", 1);
           PlayerPrefs.Save();
       }
           isStart = false;
       endText.SetActive(true); // 끝 표시
       //게임 종료(끝! 텍스트 발생) 후, 1초후 UI 활성화
       Invoke("ActiveGameoverUi", 1);
   }

 

이런식으로 저장을 한 후 

 

아래 코드로 불러와서 알맞은 단계를 해금해주었다.

 

    private void Start()
    {
        UpdateCardSlots();
        bool nC = PlayerPrefs.GetInt("NormalModeCleared", 0) == 1; // 여기서 "NormalModeCleared", 0 의 0은 저장된 값이 없을 경우 0으로 초기화 하는것이다. NormalModeCleared안에 저장된 값이 있다면 0은 아무것도 아니고 PlayerPrefs.GetInt("NormalModeCleared", 0) == 1  = true가 된다.
        bool hC = PlayerPrefs.GetInt("HardModeCleared", 0) == 1;
        if (nC)
        {
            HardBtn.SetActive(true);
            HardBtnOff.SetActive(false);
        }
        else if (hC)
        {
            HiddenBtn.SetActive(true);
        }
        else if (!nC)
        {
            HardBtn.SetActive(false) ;
            HardBtnOff.SetActive(true);
        }
    }

 

 

그리고 이렇게 배운 것을 활용해,, 카드 수집 시스템을 만들려고했는데,,,내일 튜터님을 좀 괴롭혀야 할 일이 생긴 것 같다......