EasyCastleUNITY

길건너 친구들 모작 개발일지 12(데이터 저장) 본문

3D 프로젝트 개발 일지(Crossy Road, 한글명: 길건너 친구들)

길건너 친구들 모작 개발일지 12(데이터 저장)

EasyCastleT 2023. 10. 12. 11:39

해당 게임의 포인트는 저장을 하지 않아도 되지만, 

최고 기록과 코인은 저장을 하고 불러와야 합니다. 

 

그래서 이 최고 기록과 코인을 간단하게 유니티에서 제공하는 PlayerPrefs 클래스를 사용하여 저장해보려고 합니다. 

Window에서 PlayerPrefs를 통해 저장하면 데이터들은 위에 위치에 저장되게 됩니다. 

이 위치는 

에서 접근할 수 있습니다. 

 

포인트는 플레이어의 onPoint 대리자가 호출되면 증가하고, 코인은 onCoin 대리자가 호출되면 증가합니다. 

GameMain

이렇게 포인트와 코인은 증가하는데, 이 데이터들을 저장할 필요가 있습니다. 

코인은 한번 먹으면 사용하지 않는 이상 사라지지 않고, 포인트는 저장할 필요가 없지만, 최고 기록 포인트는 저장을 해줘야 합니다. 

 

그래서 Playerprefs 클래스를 사용하여 저장을 해줍니다. 

저장 시점은 플레이어가 죽었을 때, 저장을 하기 위해 player.onDie의 이벤트 내에서 저장하도록 합니다. 

코인을 줄어들일이 없기에 바로 현재의 coin 변수의 값을 저장합니다. 

최고 기록은 현재의 포인트가 시작할 때 받아온 topPoint 보다 클 경우 갱신시킵니다. 

 

이렇게 저장은 완료되었습니다. 

 

이제 이 저장한 데이터들을 받아와야 합니다. 씬이 시작될 때 받아오기로 하였습니다. 

GameMain의 Start에서 호출

PlayerPrefs 클래스의 메서드 GetInt를 사용하여, 저장한 데이터들을 받아와 GameMain의 변수 coin과 topPoint에 저장합니다. 

 

이렇게 저장한 데이터 받아오는 것도 구현을 마쳤습니다. 

처음 시작
다음 씬

잘 저장이 되는 것을 확인 할 수 있습니다. 

하지만 PlayerPrefs는 그 특성상 사용자가 쉽게 접근 할 수 있기에, 다른 저장 방법을 사용하는 것이 좋습니다.