-
Notifications
You must be signed in to change notification settings - Fork 2
develop SaveLoad
pianop edited this page Mar 11, 2023
·
17 revisions
TODO:
Json은"dataName": value 형태로 이루어져있고 문자열은 ""으로 감싸주어야합니다.
Json가 지원하는 자료형으로는 number(int, float), string, bool, object, array, null 등이 있습니다.
Resources/GameData/DefaultUserData.json 파일
public class UserData
{
public int Gold;
public int[] Options;
public int[] PowerUps;
public bool[] Achievements;
public bool[] Collection;
public bool[] UnlockStages;
}
Json에서 사용한 변수의 이름과 같이 이름들을 설정해주어야 뒤에 나올 JsonUtility.FromJson(...)으로 파싱이 가능
역할: 유저의 게임 데이터에 대해 저장, 리셋, 불러오기, 불러온 데이터를 UserInfo클래스의 UserDataSet 변수에 파싱
Awake()에서 싱글톤 패턴 적용, DontDestroyOnLoad적용 , SavePath = Application.persistentDataPath + "/";으로 할당.
Start()에서 저장 파일이 있는지 확인, 없으면 위의 DefaultUserData를 불러와 새로 저장 파일 생성(DataReset), 있다면 기존 파일 불러오기
public void SaveData()
{
string data = JsonUtility.ToJson(UserInfo.instance.UserDataSet);
File.WriteAllText(SavePath + "UserSaveData.json", data);
}
public void LoadData()
{
string data = File.ReadAllText(SavePath + "UserSaveData");
UserInfo.instance.UserDataSet = JsonUtility.FromJson<UserData>(data);
}
public void DataReset()
{
TextAsset textData = Resources.Load("GameData/DefaultUserData") as TextAsset;
UserInfo.instance.UserDataSet = JsonUtility.FromJson<UserData>(textData.text);
SaveData();
}
여기서 UserInfo.instance.UserDataSet은 위의 UserData타입임