반응형
1. PlayerPrefs란?
PlayerPrefs는 Unity에서 간단한 데이터 저장을 위해 제공하는 기능으로, 게임의 설정 값이나 간단한 데이터를 영구적으로 저장하는 데 사용됩니다. 내부적으로 Windows에서는 레지스트리, Android/iOS에서는 로컬 파일을 이용하여 데이터를 저장합니다.
2. PlayerPrefs 사용법
기본적인 데이터 저장 및 불러오기
// 데이터 저장
PlayerPrefs.SetInt("HighScore", 1000);
PlayerPrefs.SetFloat("Volume", 0.8f);
PlayerPrefs.SetString("PlayerName", "Alice");
// 데이터 불러오기 (기본값 설정 가능)
int highScore = PlayerPrefs.GetInt("HighScore", 0);
float volume = PlayerPrefs.GetFloat("Volume", 1.0f);
string playerName = PlayerPrefs.GetString("PlayerName", "Guest");
// 데이터 삭제
PlayerPrefs.DeleteKey("HighScore");
// 모든 데이터 삭제
PlayerPrefs.DeleteAll();
// 변경 사항 저장 (모바일에서 필요할 수도 있음)
PlayerPrefs.Save();
3. PlayerPrefs의 장점과 단점
✅ 장점
- 간단한 데이터 저장 가능
- 별도의 파일 I/O 작업 없이 간단한 코드로 데이터를 저장할 수 있습니다.
- 플랫폼 독립적
- Windows, Mac, Android, iOS 등에서 동일한 방식으로 사용할 수 있습니다.
- 설정 값 저장에 적합
- 볼륨, 해상도, 컨트롤 설정 등의 데이터를 쉽게 저장하고 불러올 수 있습니다.
❌ 단점
- 보안이 취약함
- 저장된 데이터가 암호화되지 않으며, Windows에서는 레지스트리를, 모바일에서는 로컬 파일을 조작하면 쉽게 변경할 수 있습니다.
- 대량의 데이터 저장에는 부적합
- PlayerPrefs는 작은 설정 값을 저장하는 용도로 만들어졌으며, 큰 데이터를 저장하면 성능 저하가 발생할 수 있습니다.
- Binary나 구조체 저장 불가
- int, float, string 타입만 저장 가능하며, 리스트나 복잡한 데이터 구조를 저장하려면 JSON 변환이 필요합니다.
- 예제:
string json = JsonUtility.ToJson(myData);
PlayerPrefs.SetString("MyData", json);
4. PlayerPrefs를 사용해야 할 때 vs 다른 대안
기능PlayerPrefs대안
설정 값 저장 | ✅ 적합 | - |
게임 진행 데이터 저장 | ❌ 부적합 | JSON 파일, SQLite, Binary Serialization, Cloud Save |
보안이 중요한 데이터 (예: 유료 아이템) | ❌ 매우 부적합 | 암호화된 파일, 클라우드 저장 (Firebase, PlayFab 등) |
5. 결론
- PlayerPrefs는 설정 값을 저장하는 데 유용하지만, 중요한 게임 데이터(점수, 진행 상황, 인벤토리 등)를 저장하는 용도로 사용하면 보안 문제가 발생할 수 있습니다.
- 큰 데이터 저장이 필요하다면 파일 시스템, JSON, SQLite, 클라우드 저장을 고려하는 것이 좋습니다.
🔹 추천 사용 예시
✅ PlayerPrefs 사용: 볼륨, 해상도, 키 설정 저장
❌ PlayerPrefs 사용 X: 세이브 데이터, 보안이 중요한 정보
반응형
'프로그래밍 월드 > 유니티(Unity)' 카테고리의 다른 글
[Unity] 유니티에서 개발하여 구글 앱스토어 등록할때 발생하는 에러(이 버전은 Google Play 64비트 요구사항을 준수하지 않습니다.) 해결방법 (0) | 2025.02.04 |
---|---|
[Unity] 유니티에서 화면 가로, 세로 화면을 지정하거나 고정시키기 (0) | 2025.02.04 |
(Unity) 유니티 및 기타 코딩의 부동 소수점 비교에 대하여 1.0f != 1.0f ?? 이게 무슨 일일까 (0) | 2025.01.28 |
유니티 에드몹 에디터에서는 광고가 잘 나오는데 안드로이드 기기에서 광고가 안나오는 현상을 수정해봅시다. (0) | 2025.01.21 |
유니티(Unity) Keystore의 비밀번호 잊어버렸을때 다시 찾는 방법 (0) | 2025.01.21 |