ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 8일차 최고점수 보여주기
    개발일지/스파르타 코딩클럽 유니티 강의 2024. 3. 28. 16:39

    오늘은 새로 알게된 것들이 많아서

    아주 유용한 시간이었다고 생각한다.

     

    오늘 배운 내용

    • 데이터를 보관하는 방법
    • 데이터 저장하기
    • 데이터 불러오기
    • 데이터를 저장했었는지 확인하기
    • 데이터를 모두 지우기
    • 최고점수 보여주는 로직 생각하기
    • 로직 구현하기
    • 최고점수 띄워주기

     

    새로 알게 된 내용

    데이터를 보관하는 방법

    PlayerPrefs 함수를 사용하면 앱이 꺼져도 데이터가 저장이 된다.

     

    데이터 저장하기

    PlayerPrefs.SetFloat("bestScore", 어떤숫자값);
    PlayerPrefs.SetString("bestScore", 어떤문자열);

    예를 들어서

    PlayerPrefs.SetInt("age", 26);

    이라고 하면 나이라는 키에 26이라는 값을 저장하는 것이다.

     

    데이터 불러오기

    어떤숫자값 = PlayerPrefs.getFloat("bestScore");
    어떤문자열 = PlayerPrefs.getString("bestScore");

    getInt(), getFloat(), getString() 등을 이용해 저장한 데이터를 불러올 수 있다.

     

    데이터 저장했었는지 확인하기

    PlayerPrefs.HasKey("bestScore")

    true와 false로 확인할 수 있다.

    if문을 사용하여 

    if (PlayerPrefs.HasKey("bestScore") == false)
    {
    }

    이런 코드를 작성한다면

    bestScore가 없다면 ~ 해라 라는 뜻

     

    데이터를 모두 지우기

    PlayerPrefs.DeleteAll();

     

    오늘 발생한 문제

     

    코드를 완성을 했는데 최고점수를 구현하는 기능이 작동되지않았다.

    이유가 뭔지 찬찬히 살펴본 결과

    public void gameOver()
    {
        isRunning = false;
        Time.timeScale = 0.0f;
        thisScoreTxt.text = alive.ToString("N2");
        endPanel.SetActive(true);
    
        if (PlayerPrefs.HasKey("bestScore") == false)
        {
            PlayerPrefs.SetFloat("bestScore", alive);
        }
        else
        {
            if (PlayerPrefs.GetFloat("bestScore") < alive)
            {
                PlayerPrefs.SetFloat("bestScore", alive);
            }
        }
        
        public Text bestScoreTxt;
        bestScoreTxt.text = PlayerPrefs.GetFloat("bestScore").ToString("N2");
    }

    5개의 bestScore중에 하나가 소문자로 되어있었다.

    대충 버그가 일어날 때는 오타인 경우가 참 많은 것 같다.

     

    중요하게 생각하는 부분

     

    이번 시간에는 새로 알게된 내용의 모든 것들이 중요하고

     

    로직을 생각하는게 아주 중요하다고 느꼈다.

    if (최고 점수가 없으면)
    {
    	최고점수 = 지금점수
    }
    else
    {
    	if (최고점수 < 지금점수)
    	{
    		최고점수 = 지금점수
    	}
    }

    이번 시간에 배운 내용

    이런 식으로 코드를 작성하기 전에

    어느정도 어떤 식으로 짜야할지 로직을 생각하는게

    도움이 아주 많이 된다고 생각한다.

Designed by Tistory.