
Easy save
- 데이터를 쉽고 빠르게 저장 가능
- 모바일 기기에서도 빠른 속도
- JSON 및 XML과 비교하여 훨씬 빠르고 훨씬 적은 메모리 사용
- 효율적이고 안전한 데이터 암호화
- 빠른 개발과 오래된 지속적인 업데이트 및 안정성 보장
* Auto Save를 사용하면 씬 이동 시, 데이터 Load가 안되서 Auto Save는 사용하지 않는 것을 권장! (Auto Save는 Setting하기 어려움)
사용자 설정 저장
[System.Serializable]
public class GameData
{
public string UserName = "";
public int Stage = 1;
public int Coin = 0;
}
public class DataManager : MonoBehaviour
{
public GameData GameData; // class 변수 선언
public void Init()
{
DataLoad();
}
public void Release()
{
}
[ContextMenu("Save Data")] // 컴포넌트 메뉴에 아래 함수를 호출하는 Save Data 라는 명령어가 생성됨
public void DataSave()
{
ES3.Save("GameData", GameData); // Key값 설정, 선언한 class 변수명
}
[ContextMenu("Load Data")]
public void DataLoad()
{
if(ES3.FileExists("SaveFile.txt"))
{
ES3.LoadInto("GameData", GameData); // 저장된 Key 값, 불러올 class 변수명
}
else
{
DataSave();
}
}
}
생성한 DataManager에 DataSave, DataLoad 함수 추가
※ Easy Save는 프로퍼티는 저장하지 않는다!
public class DataLoader : MonoBehaviour
{
// 유저의 기본 정보
public UserData_Common UserCommonData { get; set; } = null;
// 유저의 히어로 정보
public UserData_Hero UserHeroData { get; set; } = null;
}
이 처럼 저장하려는 class에 또 다른 class를 프로퍼티로 선언하면 데이터 로드 시, null 이 뜨면서 로드를 할 수 없다.
public class DataLoader : MonoBehaviour
{
// 유저의 기본 정보
public UserData_Common UserCommonData = null;
// 유저의 히어로 정보
public UserData_Hero UserHeroData = null;
}
이렇게 Easy Save를 사용할 때는 데이터를 public으로 프로퍼티 없이 선언하자!
설정


위와 같이 설정
- Location : 저장 방식
- Directory : 저장 경로
- Default File Path : 저장 파일 이름
- Encryption : 암호화
- Encryption Password : 비밀번호 설정
- Compression : 파일 압축
- Advanced Settings : Json 저장 설정 (그대로 둘 것)

- Open Persistent Data Path : 저장 파일 폴더 확인
- Clear Persistent Data Path : 저장 파일 삭제
Auto Save

Auto Save - Enable Auto Save for this scene 클릭

사용자 설정 저장과 동일하게 저장하기 위해 동일하게 설정 한다.

DataManager Script를 체크 (Auto Save 될 항목을 체크) 후, 옆 톱니바퀴 클릭

Fields에서 선택한 Script 중, Auto Save 할 변수를 클릭

Auto Save로 돌아가서 Save Event, Load Event 설정
- Save Event : Auto Save 될 시점
- Load Event : Auto Load 될 시점
스크립트 수정
[System.Serializable]
public class GameData
{
public string UserName = "";
public int Stage = 1;
public int Coin = 0;
}
public class DataManager : MonoBehaviour
{
public GameData GameData;
public void Init()
{
DataLoad();
}
public void Release()
{
}
[ContextMenu("Save Data")]
public void DataSave()
{
ES3AutoSaveMgr.Current.Save();
}
[ContextMenu("Load Data")]
public void DataLoad()
{
if(ES3.FileExists("SaveFile.txt"))
{
ES3AutoSaveMgr.Current.Load();
}
else
{
DataSave();
}
}
}
Auto Save 외, 수동으로도 저장, 불러오기 할수 있도록 코드 수정
데이터 삭제
public void DataDelete()
{
// 데이터 삭제
ES3.DeleteFile("SaveFile.txt"); // 저장 파일 이름
}'유니티' 카테고리의 다른 글
| 오프닝 카메라 연출 효과 구현 (Dolly Track) (0) | 2024.06.03 |
|---|---|
| UI에 3D 캐릭터 보이게하기 (Rendertexture) (0) | 2024.05.15 |
| 조이스틱 구현 (0) | 2024.05.03 |
| 구글 플레이 업로드 (0) | 2024.04.19 |
| 앱 이름 한글 설정 (0) | 2024.04.19 |