Notice
Recent Posts
Recent Comments
Link
05-18 11:53
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

킹머핀의 제작 일지

UNT) 가장 간단한 JSON 파일로 저장하기 본문

Unity

UNT) 가장 간단한 JSON 파일로 저장하기

KingMUffin 2021. 10. 29. 18:52

예전에 Illume을 만들며 구현한 저장 기능은 유니티에서 지원하는 JsonUtility를 사용했다. 최근 졸업작품을 손보며 저장 기능이 필요하게 된 김에 그 때의 코드를 이 글에 대애충 정리하려 한다.

 

- JsonUtility란?
유니티에서 JSON을 편리하게 다루라고 만들어 준 라이브러리라고 알고 있다. 자세한 건 검색해보시길..
Serialization(직렬화) 가능한 필드를 JSON 데이터로 변환할 수 있음.

 

1) 네임스페이스

내가 예전에 이걸 써서 내부 저장소에 파일로 데이터를 저장하는 스크립트에는 세 가지 네임스페이스를 가져온다.

using System.IO; //파일 입출력
using UnityEngine; //JsonUtility
using System.Collections.Generic; //이건 왜 있었는지 기억 안 나니 직접 확인해보시길 ㅎㅎ

 

2) 데이터 정의

나는 필요한 모든 데이터를 따로 정의한 클래스에 담아두었다. 그리고 그 클래스의 필드가 Serialization 가능하면 JSON으로 변환이 가능할 것이다. 구조체도 가능했나 기억 안 나니 검색해보시길..

class SaveTrigger
{
    public int prograss;
    public bool[] active;
}

 

3) 필드를 JSON으로 변환 후 파일 저장

path = Path.Combine(Application.persistentDataPath, "_trigger.json");
File.WriteAllText(path, JsonUtility.ToJson(Triggers, true));

 

4) 다시 JSON 파일을 필드로 역변환

path = Path.Combine(Application.persistentDataPath, "_trigger.json");
Triggers = JsonUtility.FromJson<SaveTrigger>(File.ReadAllText(path));

 

끝이다. 내용이 부실해보이지만 그건
맞다. 그래도 이래야 핵심 코드가 무엇인지 놓치지 않을 수 있고, 얼마나 쉬운지 바로 와닿을 수 있을 것이다.