PlayerPrefs - TeamCrazyPerformance/Game_study GitHub Wiki

PlayerPrefs

PlayerPrefs는 유니티 게임에서 간단한 플레이어 데이터를 저장하고 관리하기 위한 기능을 제공하는 클래스이다. 주로 게임 설정, 랭킹, 사용자 프로필과 같이 작은 규모의 데이터를 저장하고 불러오는 데 사용된다. 데이터는 "키-값" 쌍으로 저장되며, 데이터를 휘발성으로 유지하기 때문에 게임을 종료하거나 다시 시작해도 데이터가 유지된다. 다만, 기기나 사용자 간 데이터 공유는 제한적이다.


// 데이터 저장
PlayerPrefs.SetInt("Score", 100);
PlayerPrefs.SetString("PlayerName", "John");
PlayerPrefs.Save(); // 변경사항 저장 (일반적으로 자동 저장되지만 명시적으로 호출 가능)
// 데이터 불러오기
int score = PlayerPrefs.GetInt("Score");
string playerName = PlayerPrefs.GetString("PlayerName");
// 데이터 삭제
PlayerPrefs.DeleteKey("Score"); // 특정 키의 데이터 삭제
PlayerPrefs.DeleteAll(); // 모든 데이터 삭제

장점

  • 간단한 사용: PlayerPrefs는 사용하기 매우 간단하며, 몇 줄의 코드로 데이터를 저장하고 불러올 수 있다.
  • 휘발성 데이터: 게임을 종료하거나 다시 시작해도 데이터가 유지되기 때문에 세션 기반 정보를 저장하기에 유용하다.
  • 빠른 속도: PlayerPrefs는 내부적으로 효율적으로 데이터를 저장하므로 작은 규모의 데이터에 대해 빠른 속도를 제공한다.
  • 유니티 엔진 통합: PlayerPrefs는 유니티 엔진에 내장되어 있어 추가적인 설정 없이 바로 사용할 수 있다.

단점

  • 보안: PlayerPrefs에 저장된 데이터는 기본적으로 평문으로 저장되기 때문에 민감한 정보를 저장하는 데 적합하지 않다. 해킹 등의 위험이 있을 수 있다.
  • 용량 제한: PlayerPrefs의 저장 용량은 제한적이기 때문에 대량의 데이터를 저장하거나 게임 상태를 복잡하게 관리하기에는 부적합할 수 있다.
  • 플랫폼 간 호환성: 모든 플랫폼에서 동일한 방식으로 동작하지 않을 수 있다. 일부 플랫폼에서는 PlayerPrefs를 지원하지 않을 수도 있다.
  • 데이터 공유 제한: PlayerPrefs는 기기나 사용자 간 데이터 공유가 제한적이다. 다른 기기나 사용자 간에 데이터를 동기화하기 어려울 수 있다.
  • 성능 문제: 저장된 데이터가 많을수록 PlayerPrefs의 성능이 저하될 수 있습니다. 큰 규모의 데이터를 다루는 데는 적합하지 않다.

19 오성혁

블로그

⚠️ **GitHub.com Fallback** ⚠️