[과거 블로그 글입니다.]
PlayerPrefs
- 데이터를 간단하게 저장할 수 있게 해주는 클래스
- key값과 데이터를 넣어 저장할 수 있고 , 반대로 key값을 넣어 데이터를 꺼낼 수도 있다.
저장 가능한 데이터 타입
int , float , string
1. 데이터 세팅 방법
PlayerPrefs.SetInt("hero_hp",10); // hero_hp 라는 key 값으로 10의 정수형 데이터를 집어 넣음
이런식으로 SetFloat, SetString 으로 float 와 String 의 값을 넣으면 된다.
2. 데이터 얻어오는 방법
PlayerPrefs.GetInt("hero_hp"); // hero_hp key에 대응하는 값을 돌려준다. key 가 없을경우 기본값을 돌려준다. ( 0 )
마찬가지로 GetFloat , GetString 도 해주면 된다.
3. 데이터 삭제
ㄱ PlayerPrefs.DeleteKey("hero_hp"); // key값을 넣어 해당 key값을 가진 값을 삭제
ㄴ PlayerPrefs.DeleteAll(); // 모든 데이터를 삭제
4. 데이터의 유무 체크
PlayerPrefs.HasKey("hero_hp");
key값이 존재한다면 true를 반환, 없다면 false 반환
5. 저장 방법
PlayerPrefs.Save();를 호출하면 된다.
6. 저장되는 공간
ㄱ Mac일 경우 :
~/Library/Preferences 폴더에 unity.[company name].[product name].plist 이름으로 저장된다.
ㄴ Windows일 경우 :
HKCU\Software\[company name]\[product name] 레지스트리에 저장된다.
ㄷ Mac , Web일 경우
~/Library/Preferences/Unity/WebPlayerPrefs 바이너리 파일 아래에 저장된다.
ㄹ Windows , Web일 경우
%APPDATA%\Unity\WebPlayerPrefs 에 저장된다.
* Web 에서는 1mb의 용량제한이 있고 웹 플레이어 URL당 하나의 파일을 사용할 수 있다.
제한이 초과될 경우 PlayerPrefsException 을 던진다.
6. 보안 문제
다른 플랫폼은 테스트해보지 못했으나 맥에선 해당 plist를 열어볼 수 있다. ( 수정은 불가능하지만 )
일단 열어볼 수 있다는 것 하나만으로 보안이 그렇게 높은건 같지 않고, 정 사용하려면 key 값과 데이터를 암호화 해서 사용하는게 좋을듯 하다.