Playerprefs - UnityEngine의 클래스
유니티에서 제공하는 데이터 관리 클래스이다.
게임 세션 간 플레이어의 기본 설정을 저장하고 엑세스한다.
기본 형태는 <"Key", value>
이다.
자료형 Int, Float, String 타입의 데이터를 저장할 수 있다.
Key
는 String 형이고, Key
는 value
를 찾기 위한 식별자이다.
//Ex
SetInt("Age", 25);
GetInt("Age");
Playerprefs는 보안이 취약한 편이다.
만일 중요 데이터를 Playerprefs에 저장해야 한다면 암호화 후 저장하는게 좋다.
아래 설명은 유니티 공식 문서에서 그대로 가져온 것이다.
(https://docs.unity3d.com/kr/530/ScriptReference/PlayerPrefs.html)
Playerprefs의 저장 위치
Editor/Standalone
- Mac OS X에서 PlayerPrefs는 ~/Library/Preferences 폴더에 unity.[회사 이름].[제품 이름].plist라는 파일로 저장됩니다. 여기서 회사 및 제품 이름은 프로젝트 설정에서 설정한 이름입니다. 에디터에서 실행되는 프로젝트와 독립 실행형 플레이어 모두에 동일한 .plist 파일이 사용됩니다.
- Windows에서 PlayerPrefs는 HKCU\Software[회사 이름][제품 이름] 키 아래 레지스트리에 저장됩니다. 여기서 회사 및 제품 이름은 프로젝트 설정에서 설정된 이름입니다.
- Linux에서는 프로젝트 설정에 지정된 회사 및 제품 이름을 사용하여 ~/.config/unity3d/[CompanyName]/[ProductName]에서 PlayerPrefs를 다시 찾을 수 있습니다.
- Windows 스토어 앱의 경우 플레이어 기본 설정은 %userprofile%\AppData\Local\Packages[ProductPackageId]>\LocalState\playerprefs.dat에서 찾을 수 있습니다.
- Windows Phone 8의 경우 플레이어 기본 설정은 응용 프로그램의 로컬 폴더에서 찾을 수 있습니다. 참고 항목: Windows .Directory.localFolder
- Android 데이터는 기기에 저장(지속)됩니다. 데이터는 SharerPreferences에 저장됩니다. C#/JavaScript, Android Java 및 네이티브 코드는 모두 PlayerPrefs 데이터에 액세스할 수 있습니다. PlayerPrefs 데이터는 물리적으로 /data/data/pkg-name/shared_prefs/pkg-name.xml에 저장됩니다.
WebPlayer
웹 플레이어에서 PlayerPrefs는 다음 위치에 바이너리 파일로 저장됩니다.
- Mac OS X: ~/Library/Preferences/Unity/WebPlayerPrefs
- Windows: %APPDATA%\Unity\WebPlayerPrefs
- WebGL: WebGL에서 PlayerPrefs는 브라우저의 IndexedDB를 사용하여 저장됩니다. API.
웹 플레이어 URL당 하나의 기본 설정 파일이 있으며 파일 크기는 1MB로 제한됩니다. 이 제한을 초과하면 SetInt, SetFloat 및 SetString은 값을 저장하지 않고 PlayerPrefsException을 발생 시킵니다.
함수 | 설명 |
---|---|
DeleteAll( ) | 모든 데이터를 삭제한다.(사용 시 경고 문구 출력) |
DeleteKey( String Key ) | 해당 Key와 대응하는 값을 삭제한다. |
HasKey( String Key ) | 해당 Key가 존재하는 지 확인한다. (T/F 반환) |
Save( ) | 수정된 Preferences를 파일에 저장한다. |
데이터 타입을 저장하고 불러오는 set 함수
와 get 함수
도 존재한다.
함수 | 설명 |
---|---|
SetInt(String Key) | |
Setfloat(String Key) | Key로 해당 자료형 데이터를 저장한다. |
SetString(String key) |
함수 | 설명 |
---|---|
GetInt(String Key) | |
GetFloat(String Key) | 해당 Key의 값을 가져온다. |
GetString(String Key) |
Get 함수에서 없는 Key를 호출해도 오류 없이 0을 반환한다.
SetInt("키", 초기값); > 이렇게 작성한다면, 만일 키가 없어도 초기값을 반환한다.
SetInt("size", 0) > size가 존재한다면 값을 반환하고, 없으면 0을 반환한다.
개인 공부용으로 정리한 내용입니다.
틀린 내용이 존재할 수 있으며, 있다면 댓글로 알려주시면 감사하겠습니다.
(2024-04-17)