
모바일 개발 강좌를 듣다보니 유저 데이터를 저장하는 기능을 구현하게 되었다. 아래는 그 기능인 PlayerPrefs 클래스를 사용하여 유저 데이터를 저장하고 불러내는 예시이다.
// 정수 저장
PlayerPrefs.SetInt("HighScore", 100);
// 실수 저장
PlayerPrefs.SetFloat("Volume", 0.5f);
// 문자열 저장
PlayerPrefs.SetString("PlayerName", "John");
// 저장된 점수 불러오기, 기본값 0
int highScore = PlayerPrefs.GetInt("HighScore", 0);
// 저장된 볼륨 불러오기, 기본값 1.0
float volume = PlayerPrefs.GetFloat("Volume", 1.0f);
// 저장된 플레이어 이름 불러오기, 기본값 "Guest"
string playerName = PlayerPrefs.GetString("PlayerName", "Guest");
Debug.Log("High Score: " + highScore);
Debug.Log("Volume: " + volume);
Debug.Log("Player Name: " + playerName);
PlayerPrefs 클래스는 Player Preferences의 약자로 유니티에서 간단한 데이터를 저장하고 불러오는 기능을 제공한다. 또한, 데이터의 저장 방식은 Key-Value의 형태로 데이터를 저장한다.
이 클래스의 가장 중요한 점은 우리가 게임을 종료하고 다시 켰을 때에도 이 값이 저장된다는 점이다. 즉, 유저의 기록이나 게임 설정 등의 소량의 데이터를 기록할 때 사용하면 좋다.
그러나, 단점도 있는데 PlayerPrefs 클래스는 대량의 데이터, 예를 들어 게임 진행 데이터와 같은 큰 데이터의 저장은 할 수 없다. 또한, 이 클래스를 사용하여 유저 데이터를 저장하면 파일로 기록되므로, 보안이 취약하여 중요한 데이터의 경우에는 서버나 암호화된 저장 방식을 택해야 한다.
마지막으로, 유니티 에디터에서 PlayerPrefs 클래스를 사용해서 정보를 저장했을 때, 아래와 같이 그 정보들을 모두 지울 수 있는 기능이 있다.
