[유니티] 세이브 로드 Unity PlayerPrefs

안녕하세요 UnityBeginner입니다.
이번 글에선 데이터를 저장하는 방법중 하나인 PlayerPrefs에 대해 알아보겠습니다.

씬뷰



버튼설명

다음과 같이 버튼을 배치하였습니다.

0 : 숫자가 노출되는 영역입니다.
+ :  숫자를 1씩 증가시키는 버튼입니다.
Save : PlayerPrefs를 사용하여 int값을 저장하는 버튼입니다.
Load : PlayerPrefs를 사용하여 int값을 불러오는 버튼입니다.

오브젝트 계층구조

캡션 추가
다음과 같이 오브젝트를 구성하였습니다.

스크립트 GameManager


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
public int count = 0;
public Text countTxt = 0;

public void CountAdd() {
    count++;
    countTxt.text = countToString();
}

public void SaveCountNumber() {
    PlayerPrefs.SetInt("CountNumber", count);
}

public void LoadCountNumber() {
    int load_number = PlayerPrefs.GetInt("CountNumber", count);
    countTxt.text = load_number.ToString();
}

더하기버튼을 누르게 되면 CountAdd() 함수호출되어 값을 증가
세이브버튼을 누르면 SaveCountNumber()함수가 호출
PlayerPrefs.SetInt("key" , "value") 을 이용하여 값을 저장합니다.
그리고 로드버튼을 통해 저장된 값을 불러옵니다.
PlayerPrefs.GetInt("key" , "value") 를 사용하여 값을 불러옵니다.

PlayerPrefs 함수들

DeleteAll
 - preference에서 설정되어있는 모든 key와 제거합니다.

DeleteKey
  - preference에서 key에 일치하는 값을 삭제합니다.

GetFloat
  - preference 에 key와 일치하는 Float 값을 반환합니다.

GetInt
  - preference 에 key와 일치하는 Int값을 반환합니다.

GetString
  - preference 에 key와 일치하는 String 값을 반환합니다.

HasKey
  - preference 에 key가 존재하는지 확인합니다.

Save
  - 수정된 모든 기본설정을 디스크에 기록합니다.

SetFloat
  - preference에 입력된 key값으로 Float값을 설정합니다.

SetInt
  - preference에 입력된 key값으로 Int값을 설정합니다.

SetString
  - preference에 입력된 key값으로 String값을 설정합니다.

Player Prefabs 저장경로

PC환경의 경우 레지스터리에 저장됩니다.

HKEY_CURRENT_USER/Software/Unity/UnityEditor/CompanyName/ProjectName

결과화면



위의 결과와 같이 프로그램이 종료되고 재시작을 하여도 
저장되어있는 값을 불러올 수 결과를 확인하였습니다.
해당 기능은 편집이 되어도 무관한 가벼운 내용을 저장될 때 주로 사용됩니다.

댓글