예지의 테크 로그포스 (Yeji's Tech Log Force)
사용자의 게임 기록 저장&불러오기 - Json파일 저장 본문
[Unity] Projects & Study/Loop - Interactive Movie
사용자의 게임 기록 저장&불러오기 - Json파일 저장
Yeji Heo 2023. 3. 9. 15:111. 파일이 존재하지 않으면 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);
}
'[Unity] Projects & Study > Loop - Interactive Movie' 카테고리의 다른 글
[Web타겟] 빌드 용량 줄이기(재설계) (0) | 2024.08.27 |
---|---|
[Web타겟] C# 스크립트가 WebGL을 통해 웹 브라우저에서 실행되는 과정 (0) | 2024.08.22 |
[Steam 출시] Steampipe 빌드 (+ 잘못된 앱 구성 / 실행파일 누락) (0) | 2023.03.31 |
[Unity] fade out 퀄리티 개선 (0) | 2023.02.05 |
[Unity]Interactive Movie Development (0) | 2022.09.19 |
Comments