이 문서는 Unity 프로젝트에서 데이터 저장 및 로드 기능을 제공하는 SaverManager, Saver, 그리고 관련 클래스들의 사용 방법을 설명합니다.
Scripts 폴더 등에 추가합니다.SaverManager 스크립트를 추가합니다.SaverManager는 Singleton 패턴을 사용하므로 씬에 하나만 존재해야 합니다.Name 변수를 원하는 저장 파일명으로 설정합니다.예제: 플레이어의 점수를 저장한다고 가정합니다.
using UnityEngine;
public class PlayerScore : MonoBehaviour
{
private int score = 0;
private SaverForData<int> scoreSaver;
void Start()
{
// 점수 Saver 초기화
scoreSaver = new SaverForData<int>(score);
scoreSaver.initialize("PlayerScore", 0,AfterLoad, AfterSave);
}
// 점수 변경 시 호출
public void UpdateScore(int newScore)
{
score = newScore;
scoreSaver.data = score;
scoreSaver.save(); // 원하는 시점에 데이터 저장
}
// 로드 후 실행될 콜백 함수
private void AfterLoad()
{
score = scoreSaver.data;
Debug.Log("점수 로드 완료: " + score);
}
// 저장 후 실행될 콜백 함수
private void AfterSave()
{
Debug.Log("점수 저장 완료: " + score);
}
}
save()와 load() 함수를 직접 호출하여 특정 데이터만 저장하거나 로드할 수 있습니다.
예제:
// 특정 데이터만 저장하고 싶을 때
scoreSaver.save();
// 특정 데이터만 로드하고 싶을 때
scoreSaver.load();
설명:
scoreSaver.save()를 호출하면 scoreSaver에 담긴 data만 저장됩니다.scoreSaver.load()를 호출하면 해당 데이터만 로드됩니다.SaverManager를 통해 등록된 모든 Saver의 데이터를 한꺼번에 저장하거나 로드할 수 있습니다.