게임 제작에는 아주 간단한 게임이 아닌 이상 데이터 테이블이 필수이다. 따라서 게임개발에는 필수적으로 테이블을 로드하는 코드가 들어가야 한다. 이 포스트들에서는 유니티에서 데이터 테이블을 다루는 여러가지 방법을 살펴볼 예정이다
가장 처음 소개할 내용은 JSON형식이다.
웹에서 널리 사용되어 비교적 친숙하며, 사람이 어느정도 눈으로 읽거나 고칠 수 있고, 유니티에 기본적으로 내장되어있다.
using System;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class Row
{
public int A;
public float B;
public string C;
}
[Serializable]
public class Data
{
public List<Row> Rows;
}
public static class Testbed
{
public static Data LoadJson(string json)
{
return JsonUtility.FromJson<Data>(json);
}
}
깔끔하게 한줄로 해결된다.
좀 더 세밀한 JSON 조작을 하고 싶으면 NewtonSoft.Json 등을 사용하는 것이 편리하지만, 단순히 행과 열로 이루어진 2차원 데이터를 읽을 때는 유니티 내장 JsonUtillity로도 충분하다. JsonUtility는 또한 속도도 상당히 빠른 편이어서, 아주 큰 데이터가 아닌 이상 로딩에 시간을 많이 쓰지 않는 것도 장점이다.
장점
- 유니티에 기본으로 내장되어 있어 편리하다.
- 속도가 비교적 빠르다.
- 사람이 읽을 수 있다.
단점
- 데이터 용량이 크다.
- 사람이 읽을 수는 있기만 할 뿐, 알아보기는 불편하다.
- 유니티에 내장된 JSON 라이브러리는 [Serializable] 특성을 붙여야만 인식할 수 있다.
'Unity' 카테고리의 다른 글
Unity의 fake null 문제 (0) | 2023.09.26 |
---|---|
MonoBehaviour의 초기화는 어떻게 해야 하는가? (0) | 2023.09.06 |
유니티에서 테이블 데이터 로드하기 #4 - Source Generator (0) | 2023.09.01 |
유니티에서 테이블 데이터 로드하기 #3 - Marshal (0) | 2023.08.30 |
유니티에서 테이블 데이터 로드하기 #2 - CSV (0) | 2023.08.17 |