Json은 정보를 저장할 수 있는 파일형식으로, xml의 느린 속도를 개선하기 위하여 만들어졌다.
그 대신 저장 규칙이 {"이름1":값1,"이름2":값2,"이름3":값3}으로, 이 형식에서 하나라도 틀리면 오류가 난다.
물론 유니티에서 지원해주는 Scriptable Object가 유니티상에선 월등히 편하긴 하지만, 서버와 연결되거나 할 땐 Json으로 저장하는 것이 서버와 연결할 때 도움이 된다.
Json에 덧붙여 조금 더 안전하게 저장을 하기 위하여 이전에 다루었던 AES128 암호화/복호화스크립트를 사용하였다.
코드 전문
using System.IO;
using UnityEngine;
public class JsonManager : MonoBehaviour
{
private static string path = Application.dataPath + "/save.Json";
public static void Save(Stat data)
{
string json = JsonUtility.ToJson(data);
json = Crypto.AESEncrypt128(json); //이전에 작성한 암호화 기능 사용. 없어도 문제 안 됨
File.WriteAllText(path, json);
}
public static T Load<T>()
{
string json = File.ReadAllText(path);
json = Crypto.AESDecrypt128(json); //이전에 작성한 암호화 기능 사용. 없어도 문제 안 됨
//Debug.Log(json);
return JsonUtility.FromJson<T>(json);
}
}
여담
c++에서 json 저장을 시도한 적 있었는데, 유니티에선 쉽게 사용할 수 있도록 UnityEngine의 클래스로 구현해 놓았다는 점이 정말 편리하고 유용하다는 것을 깨달았다. 그러나 구현한 코드를 보여주지 않는 점이 살짝 아쉽다.
'Unity' 카테고리의 다른 글
Unity Addressable을 활용하여 이미지 로드하기 (0) | 2023.01.11 |
---|---|
유니티 C# 버튼 가려짐 해결 (0) | 2022.11.21 |
댓글