Unity/구현
데이터를 쉽게 저장하는 법 (Unity)
QuickClid
2025. 5. 10. 21:10
using UnityEngine;
using System.IO;
public class DataManager : MonoBehaviour
{
public static GameObject data_manager;
public Data data;
private void Awake()
{
if (data_manager == null)
{
data_manager = gameObject;
DontDestroyOnLoad(gameObject);
}
else
{
Destroy(gameObject);
}
}
private void Start()
{
data = new Data();
LoadFromJson();
}
private void OnApplicationQuit()
{
SaveToJson();
}
public void SaveToJson()
{
string filePath = Application.persistentDataPath + "/InGameData.json";
File.WriteAllText(filePath, JsonUtility.ToJson(data));
}
public void LoadFromJson()
{
string filePath = Application.persistentDataPath + "/InGameData.json";
if (File.Exists(filePath) == false)
{
ResetData();
return;
}
data = JsonUtility.FromJson<Data>(File.ReadAllText(filePath));
}
public void ResetData()
{
for (int i = 0; i < 45; i++) data.cleared_levels[i] = false;
}
public void UpdateClearedLevel(int cleared_level_index)
{
data.cleared_levels[cleared_level_index] = true;
}
}
[System.Serializable]
public class Data
{
public bool[] cleared_levels = new bool[45];
}