# PlayerPrefs
PlayerPrefs는 Unity에서 제공하는 (primitive)변수 저장 기능이다.
PlayerPrefs에서 데이터는 [key, value]형태로 저장되며, key는 string형태의 문자열이다.
(SaveManager.cs)
using UnityEngine;
public class SaveManager : MonoBehaviour
{
private string saveKey = "StageIndex";
[SerializeField] private StageData stageData;
private void Awake()
{
DontDestroyOnLoad(this);
}
private void OnApptionQuit()
{
SaveStageIndex();
}
private void SaveStageIndex()
{
PlayerPrefs.SetInt(saveKey, stageData.currentStage);
PlayerPrefs.Save();
}
public void LoadStageIndex()
{
stageData.currentStage = PlayerPrefs.GetInt(saveKey, stageData.currentStage);
}
}
일반적으로 모든 게임 전반에 작동하는 오브젝트이므로 DontDestroyOnLoad를 붙여준다.
게임을 종료할 때 save메소드를 불러오고 타 class에서 load 메소드를 호출하면 그대로 값을 불러와 저장한다.
단, DontDestroyOnLoad를 사용하면 씬을 불러올 때마다 계속 중복되어 등장하므로 다음 방식으로 중복을 처리한다.
private static SaveManager instance;
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
private void Awake()
{
if(instance == null)
{
instance = this;
DontDestroyOnLoad(this);
}
else Destroy(gameObject);
}
(Entry Play Mode를 사용하고 있으니 static 초기화용 attribute 부착)
'유니티' 카테고리의 다른 글
| [유니티] UI 팝업 구현 (0) | 2026.05.13 |
|---|---|
| [유니티] UI 리스트 구현 (0) | 2026.05.13 |
| [유니티] Canvas and UI (0) | 2026.05.13 |
| [유니티] Audio Source (0) | 2026.05.12 |
| [유니티] Prefabs (0) | 2026.05.12 |