본문 바로가기
Unity

PlayerPrefs - 데이터를 간단하게 저장하는 방법

by Oz Driver 2025. 3. 25.

게임을 만들다 보면, 점수나 설정 같은 정보를 저장하고 싶을 때가 있습니다.

예를 들어,

게임을 껐다 켜도 최고 점수를 기억하고 싶은 경우

사용자가 설정한 음량을 유지하고 싶은 경우

이럴 때 간단하게 사용할 수 있는 기능이 바로 Unity의 PlayerPrefs입니다.

 

 

PlayerPrefs란?

PlayerPrefs는 Unity에서 제공하는 간단한 데이터 저장 시스템입니다.

Prefers 는 영어 'Preferences' 의 약어이며, 프로그래밍 분야에서는 '선호' 라는 의미보다는 '설정' 에 조금 더 가까운 의미로 해석됩니다. 이 기능을 통해 파일이나 데이터베이스를 따로 만들 필요 없이, 숫자나 문자열을 쉽게 저장하고 불러올 수 있습니다.

다만 보안이 필요하거나 민감한 정보는 저장하지 않는 것이 좋습니다. 누구나 수정할 수 있는 위치에 저장되기 때문에, 핵심 데이터는 다른 방식으로 처리해야 합니다.

 

 

사용 방법

PlayerPrefs는 '키 - 값' 형태로 데이터를 저장합니다. 아래 세 가지 함수만 기억하시면 충분합니다.

// 저장하기
PlayerPrefs.SetInt("HighScore", 200);

// 불러오기
// 키가 없으면 기본값 0 반환
int score = PlayerPrefs.GetInt("HighScore", 0); 

// 저장 적용 (선택 사항)
PlayerPrefs.Save();

 

Set 으로 값을 저장하고, Get 으로 불러옵니다. Save()는 즉시 저장하고 싶을 때만 사용하시면 됩니다.

PlayerPrefs.Save() 를 명시적으로 호출하지 않아도 Unity는 애플리케이션이 정상적으로 종료될 때 자동으로 값을 저장해줍니다. 하지만 예외적으로 강제 종료되거나 크래시가 발생하면 저장이 되지 않을 수 있기 때문에, 중요한 데이터는 Set 호출 후 Save()를 함께 호출해주는 것이 안전합니다. 예를 들어, 게임 설정이나 중간 저장처럼 사용자가 입력을 마친 직후 바로 저장이 필요한 경우에는 PlayerPrefs.Save()를 명시적으로 호출하는 습관이 좋습니다.

 

 

저장 경로

Windows
레지스트리에 저장됨
경로 :

HKEY_CURRENT_USER\Software\Company Name\Product Name

Company Name 과 Product Name 은 Unity > Edit > Project Settings > Player 에 설정한 이름입니다.

 

macOS
경로: ~/Library/Preferences/unity.회사이름.게임이름.plist

 

Android
경로: /data/data/패키지이름/shared_prefs/패키지이름.v2.playerprefs.xml

 

iOS
경로: ~/Library/Preferences/패키지이름.plist

 

 

저장 가능한 데이터 타입

PlayerPrefs는 총 세 가지 타입만 저장할 수 있습니다.

// 정수
PlayerPrefs.SetInt("Stage", 5);              

// 실수
PlayerPrefs.SetFloat("Volume", 0.8f);        

// 문자열
PlayerPrefs.SetString("UserName", "ozborn");

 

복잡한 자료형(예: 리스트, 구조체) 은 바로 저장할 수 없으며, 문자열로 변환하여 처리해야 합니다.

 

예시 코드 

void SaveHighScore(int score)
{
    PlayerPrefs.SetInt("HighScore", score);
}

int LoadHighScore()
{
    return PlayerPrefs.GetInt("HighScore", 0);
}

 

위 코드처럼 저장할 때는 SetInt, 불러올 때는 GetInt를 사용합니다. GetInt("HighScore", 0) 처럼 기본값을 꼭 함께 사용하시는 것이 좋습니다. 해당 키가 없을 경우 기본값이 반환되므로 오류를 방지할 수 있습니다.

 

 

마무리

PlayerPrefs 는 게임 데이터를 빠르고 쉽게 저장할 수 있는 도구입니다. 복잡한 저장 시스템을 사용하지 않아도 되기 때문에 가볍게 접근할 때, 적합합니다.

물론 보안이 필요한 정보나 복잡한 구조를 저장하려면 다른 방식을 고려해야 하지만, 간단한 설정값이나 점수 저장에는 이보다 더 쉬운 방법이 없습니다.