[Unity] Projects & Study/Loop - Interactive Movie
사용자의 게임 기록 저장&불러오기 - Json파일 저장
Yeji Heo
2023. 3. 9. 15:11
1. 파일이 존재하지 않으면 JsonMake()함수로 만들기
public void JsonMake()
{
SaveData saveData = new SaveData();
saveData.isVisit[0] = true;
for (int i = 1; i < 21; i++)
{
saveData.isVisit[i] = false;
}
for (int i = 0; i < 9; i++)
{
saveData.ending[i] = false;
}
GameManager.I.continueScene = "Scene1";
saveData.continueScene = GameManager.I.continueScene;
string json = JsonUtility.ToJson(saveData, true);
File.WriteAllText(path, json);
}
2. 존재하면 Load
public void JsonLoad()
{
SaveData saveData = new SaveData();
if (!File.Exists(path))
{
JsonMake();
}
else
{
string loadJson = File.ReadAllText(path);
saveData = JsonUtility.FromJson<SaveData>(loadJson);
if (saveData != null)
{
for (int i = 0; i < saveData.isVisit.Length; i++)
{
GameManager.I.isVisit[i] = saveData.isVisit[i];
}
for (int i = 0; i < saveData.ending.Length; i++)
{
GameManager.I.ending[i] = saveData.ending[i];
}
GameManager.I.continueScene = saveData.continueScene;
}
}
}
3. 게임 도중 사용자가 뒤로가기버튼을 눌러 Main으로 돌아갈 때 JsonSave()호출해 저장
public void JsonSave()
{
SaveData saveData = new SaveData();
for (int i = 0; i < 21; i++)
{
saveData.isVisit[i] = GameManager.I.isVisit[i];
}
for (int i = 0; i < 9; i++)
{
saveData.ending[i] = GameManager.I.ending[i];
}
saveData.continueScene = GameManager.I.continueScene;
string json = JsonUtility.ToJson(saveData, true);
File.WriteAllText(path, json);
}