직렬화
[System.Serializable]
public class UserData
{
public float hp;
public int lv;
public string nickname;
}
public class Test : MonoBehaviour
{
private void Start()
{
UserData data = new UserData();
data.hp = 100;
data.lv = 4;
data.nickname = "test";
string jsonData = JsonUtility.ToJson(data);
}
}
- 저장하고 싶은 데이터를 모아 하나의 클래스로 만든다.
- 꼭 [System.Serializable] 을 붙여 직렬화 하기!
역직렬화
public class Test : MonoBehaviour
{
private void Start()
{
...
UserData loadData = JsonUtility.FromJson<UserData>(jsonData);
}
}
데이터 저장하기
public class Test : MonoBehaviour
{
private void Start()
{
...
File.WriteAllText(Application.persistentDataPath + "/filename.txt", jsonData);
}
}
- 데이터 저장 경로를 임의로 정해주면 위험하다.
- Application.persistentDataPath: 유니티에서 제공하는 기능으로 현재 컴퓨터 상황에 다라 알맞게 경로를 세팅해줌.
- + "/filename.txt": txt 파일로 원하는 이름으로 작성
데이터 불러오기
public class Test : MonoBehaviour
{
private void Start()
{
...
string load = File.ReadAllText(Application.persistentDataPath + "/filename.txt");
}
}
활용
- 데이터 직렬화 -> 데이터 저장 -> 데이터 불러오기 -> 데이터 역직렬화
- 이러한 순으로 원하는 데이터를 저장하고 불러올 수 있다.