Global이라는 static 클래스를 사용했기 때문에 아래 함수들은 public static으로 되어있음. 이는 클래스 멤버 변수로 non-static으로 해도 무방.
저장
public static void CreateJsonFile(string createPath, string fileName, string jsonData)
{
FileStream fileStream = new FileStream(string.Format("{0}/{1}.json", createPath, fileName), FileMode.Create);
byte[] data = Encoding.UTF8.GetBytes(jsonData);
fileStream.Write(data, 0, data.Length);
fileStream.Close();
}
읽기
public static T LoadJsonFile<T>(string loadPath, string fileName)
{
FileStream fileStream = new FileStream(string.Format("{0}/{1}.json", loadPath, fileName), FileMode.Open);
byte[] data = new byte[fileStream.Length];
fileStream.Read(data, 0, data.Length);
fileStream.Close();
string jsonData = Encoding.UTF8.GetString(data);
return JsonUtility.FromJson<T>(jsonData);
}
저장방법
// 경로명 Application.persistentDataPath은 런타임 도중 삭제되지 않는 경로
var savePath = Application.dataPath + "/";
// 해당되는 경로에 폴더가 없다면 생성
if (!Directory.Exists(savePath))
Directory.CreateDirectory(savePath);
// 아래 함수를 써서 파싱
JsonUtility.ToJson(저장할 데이터);
읽는방법
// 불러와서 그대로 대입
var 변수 = Global.LoadJsonFile<클래스 또는 구조체명>(경로, 파일 이름);
if (변수 != null)
로컬 변수 = 변수;
'게임엔진 > Unity' 카테고리의 다른 글
[Unity] 셰이더 프로퍼티 값 (예,색상 변경하기) (0) | 2023.05.19 |
---|---|
[Unity] GUI, GUIStyle 및 GUILayout (0) | 2023.05.11 |
[Unity] 이동, 회전, 크기변경 정리 (2) | 2023.05.05 |
[Unity] 어드레서블 에셋(Addressable Asset)의 모든것 (0) | 2023.04.02 |
[Unity] Job 시스템 정의 (0) | 2023.03.23 |