언리얼에서 게임을 저장하는 방법 중 Json으로 게임을 저장하는 방법에 대해서 알아보았다.
Json은 텍스트 형식으로 데이터를 저장하는 방법 중의 하나이다.
때문에 대부분의 엔진, 언어에서 Json을 제공해주기 때문에 쉽게 사용할 수 있다.
언리얼에서 Json을 사용하는 방법을 알아보겠다.
먼저 Json을 사용하기 위해서는 'Project.Build.cs' 파일에 'Json', 'JsonUtilities' 모듈을 추가해주어야 한다.
// Project.Build.cs
PublicDependencyModuleNames.AddRange(new string[]
{ "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay", "Json", "JsonUtilities" });
Save를 할 때에는 파일을 생성하여 입력하는 것이기 때문에 TJsonWriter을 사용한다.
1, 2번 줄은 Json으로 파일을 저장하기 위한 형식으로 알아두면 편하다.
위 처럼 Json의 Data형식은 중괄호를 통하여 나누어져 있고, 키 값 : 내용 값 으로 구분이 되어있다.
키 값은 String, 내용 값으로는 Boolean, Integer, Float, String 타입으로 저장할 수 있다.
WriteObjectStart는 중괄호를 생성하여 Json 파일의 오브젝트를 나누는 역할을 한다.
최초의 중괄호는 무조건 필요하기 때문에 WriteObjectStart로 데이터 입력을 시작해야한다.
물론 최초의 중괄호에도 키 값을 주어 오브젝트에 키를 넣어주어도 된다.
그 이후부터는 Json에 데이터를 원하는 대로 생성하면 된다.
오브젝트를 구분하고 싶다면, WriteObjectStrat ~ WriteObjectEnd 안에 생성할 데이터를 넣어주면 된다.
데이터 입력이 끝난 후에는 close() 함수를 호출함으로써 Json 데이터를 마친다는 것을 알리면 된다.
마지막으로 데이터를 파일로 저장하기 위해서
파일의 데이터를 담을 FString 변수와 파일을 생성할 위치 + 이름을 FString 타입으로 FFileHelper::SaveStringToFile을 호출하면 된다.
파일이 성공적으로 생성되면 True를, 그렇지 않으면 False를 반환하기 때문에 if문 안에 넣으면 Error 검출에 사용하면 된다.
'게임 개발 끄적 > Unreal (C++)' 카테고리의 다른 글
[UE4] Time Manager (0) | 2017.11.24 |
---|---|
[UE4] 소스코드에서 이미지 로드 (2) | 2017.11.24 |
[UE4] ScreenShot (0) | 2017.11.24 |
[UE4] Json을 사용한 Load (0) | 2017.11.24 |
[UE4] 블루프린트 로드 (0) | 2017.11.21 |