-
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 (최고점수 < 지금점수) { 최고점수 = 지금점수 } }
이번 시간에 배운 내용
이런 식으로 코드를 작성하기 전에
어느정도 어떤 식으로 짜야할지 로직을 생각하는게
도움이 아주 많이 된다고 생각한다.
'개발일지 > 스파르타 코딩클럽 유니티 강의' 카테고리의 다른 글
10일차 고양이 밥주기 게임 (0) 2024.04.01 9일차 풍선 애니메이션 전환하기 ( Invoke , Has Exit Time ) (0) 2024.03.29 7일차 게임 끝내기 (0) 2024.03.27 6일차 풍선 & 마우스 만들기 (0) 2024.03.26 5일차 .. 2주차 시작 (0) 2024.03.25