[Unity] 01 PlayerPrefs
정의
게임 세션 간에 플레이어의 기본적인 설정을 로컬 레지스트리에 저장하는 클래스
의의
게임에는 시스템 설정값과 같이 해당 값이 게임의 시작과 종료에 상관 없이 유지되는 것이 편리한 비휘발성 데이터가 존재합니다. 이러한 데이터는 PlayerPrefs 를 통해 사용자 로컬 저장소에 저장하고 관리하는 것이 쾌적한 게임 환경 구성을 위해 권장됩니다. 하지만 PlayerPrefs 가 사용하는 저장소는 사용자의 로컬에 위치하는 만큼 보안에 취약할 수 밖에 없습니다. 따라서 재화, 경험치 수준과 같이 보안에 민감한 데이터는 되도록이면 PlayerPrefs 로 취급하지 않습니다.
기능
관련 함수
▼ PlayerPrefs 클래스 함수
DeleteAll | 환경 설정에서 모든 키와 값을 제거합니다. |
DeleteKey | PlayerPrefs에서 주어진 키를 제거합니다. 키가 존재하지 않으면 DeleteKey는 영향을 미치지 않습니다. |
GetFloat | 환경 설정 파일에 키에 해당하는 값이 있으면 해당 값을 반환합니다. |
GetInt | 환경 설정 파일에 키에 해당하는 값이 있으면 해당 값을 반환합니다. |
GetString | 환경 설정 파일에 키에 해당하는 값이 있으면 해당 값을 반환합니다. |
HasKey | 주어진 키가 PlayerPrefs에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다. |
Save | 수정된 모든 설정값을 저장합니다. |
SetFloat | 주어진 키로 식별된 속성의 float 값을 설정합니다. PlayerPrefs.GetFloat를 사용하여 이 값을 검색할 수 있습니다. |
SetInt | 주어진 키로 식별된 속성에 대한 int 값을 설정합니다. PlayerPrefs.GetInt를 사용하여 이 값을 검색할 수 있습니다. |
SetString |
주어진 키로 식별된 속성에 대한 string 값을 설정합니다. PlayerPrefs.GetString을 사용하여 이 값을 검색할 수 있습니다.
|
사용 예시
다음은 사용자의 키보드 'S' 를 입력받으면 PlayerPrefs 클래스를 통해 사용자의 로컬 레지스트리에 데이터를 저장하고, 키보드 'L' 을 입력받으면 저장한 값을 불러오는 예시입니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Update()
{
// 키보드 S를 입력받으면 PlayerPrefs에 데이터 저장
if (Input.GetKeyDown(KeyCode.S))
{
PlayerPrefs.SetInt("UserVolume", 3);
PlayerPrefs.SetFloat("UserMouseSensitivity", 1.2f);
Debug.Log("시스템 설정값 저장 완료");
}
// 키보드 L을 입력받으면 PlayerPrefs의 데이터 호출
if (Input.GetKeyDown(KeyCode.L))
{
int a_UserVolume = PlayerPrefs.GetInt("UserVolume", 0);
float a_UserMouseSensitivity = PlayerPrefs.GetFloat("UserMouseSensitivity", 1.0f);
Debug.Log($"볼륨: {a_UserVolume}, 마우스 감도: {a_UserMouseSensitivity}");
}
}
}
/*
시스템 설정값 저장 완료
볼륨: 3, 마우스 감도: 1.2
*/
Unity - Scripting API: PlayerPrefs
Unity stores PlayerPrefs in a local registry, without encryption. Do not use PlayerPrefs data to store sensitive data. Unity stores PlayerPrefs data differently based on which operating system the application runs on. In the file paths given on this page,
docs.unity3d.com