본문 바로가기

Unity

유니티에서 테이블 데이터 로드하기 #1 - JSON

게임 제작에는 아주 간단한 게임이 아닌 이상 데이터 테이블이 필수이다. 따라서 게임개발에는 필수적으로 테이블을 로드하는 코드가 들어가야 한다. 이 포스트들에서는 유니티에서 데이터 테이블을 다루는 여러가지 방법을 살펴볼 예정이다

 

가장 처음 소개할 내용은 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는 또한 속도도 상당히 빠른 편이어서, 아주 큰 데이터가 아닌 이상 로딩에 시간을 많이 쓰지 않는 것도 장점이다.


장점

  1. 유니티에 기본으로 내장되어 있어 편리하다.
  2. 속도가 비교적 빠르다.
  3. 사람이 읽을 수 있다.

단점

  1. 데이터 용량이 크다.
  2. 사람이 읽을 수는 있기만 할 뿐, 알아보기는 불편하다.
  3. 유니티에 내장된 JSON 라이브러리는 [Serializable] 특성을 붙여야만 인식할 수 있다.