유니티

데이터 저장 (Easy Save 에셋)

잼잼재미 2024. 5. 5. 20:47

 

 

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 함수 추가

 

 

설정


 

 

위와 같이 설정

 

  • 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