[Unity] Playerprefs

PIAZZI·2024년 4월 17일
0

Unity

목록 보기
3/9
post-thumbnail

Playerprefs - UnityEngine의 클래스

유니티에서 제공하는 데이터 관리 클래스이다.
게임 세션 간 플레이어의 기본 설정을 저장하고 엑세스한다.


기본 형태<"Key", value> 이다.
자료형 Int, Float, String 타입의 데이터를 저장할 수 있다.
KeyString 형이고, Keyvalue를 찾기 위한 식별자이다.

//Ex
SetInt("Age", 25);
GetInt("Age");

Playerprefs는 보안이 취약한 편이다.

  • 해당 저장위치에 가면 해당 정보가 그대로 보이기 때문이다.
  • 그래서 보통 중요한 게임 데이터대신 BGM 볼륨 설정이나 여러 옵션 세팅같은 정보를 담아주는 것을 추천한다.

만일 중요 데이터를 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을 발생 시킵니다.


playerprefs - 제공 함수

함수설명
DeleteAll( )모든 데이터를 삭제한다.(사용 시 경고 문구 출력)
DeleteKey( String Key )해당 Key와 대응하는 값을 삭제한다.
HasKey( String Key )해당 Key가 존재하는 지 확인한다. (T/F 반환)
Save( )수정된 Preferences를 파일에 저장한다.

데이터 타입을 저장하고 불러오는 set 함수get 함수도 존재한다.

Set 함수

함수설명
SetInt(String Key)
Setfloat(String Key)Key로 해당 자료형 데이터를 저장한다.
SetString(String key)

Get 함수

함수설명
GetInt(String Key)
GetFloat(String Key)해당 Key의 값을 가져온다.
GetString(String Key)

Get 함수에서 없는 Key를 호출해도 오류 없이 0을 반환한다.

SetInt("키", 초기값); > 이렇게 작성한다면, 만일 키가 없어도 초기값을 반환한다.

SetInt("size", 0) > size가 존재한다면 값을 반환하고, 없으면 0을 반환한다.

개인 공부용으로 정리한 내용입니다.
틀린 내용이 존재할 수 있으며, 있다면 댓글로 알려주시면 감사하겠습니다.
(2024-04-17)

profile
범부에오

0개의 댓글