킹머핀의 제작 일지
UNT) 가장 간단한 JSON 파일로 저장하기 본문
예전에 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));
끝이다. 내용이 부실해보이지만 그건
맞다. 그래도 이래야 핵심 코드가 무엇인지 놓치지 않을 수 있고, 얼마나 쉬운지 바로 와닿을 수 있을 것이다.
'Unity' 카테고리의 다른 글
VR) 유니티 XR Interaction Toolkit 터널링 효과 적용하기 (0) | 2021.05.27 |
---|---|
VR) 유니티 XR Interaction Toolkit 응용 버그 수정 (0) | 2021.05.19 |
UNT) 커스텀 에디터를 만들 때 Undo가 안 된다? (0) | 2021.05.14 |
VR) 유니티 XR Interaction Toolkit 계속 탐구 (0) | 2021.05.11 |
VR) 유니티 XR Interaction Toolkit 응용 탐구 (0) | 2021.05.06 |