플레이어나 몬스터들의 hp나 경험치, 스킬데미지같은 수치들을 관리할때 각 클래스에 하드코딩을 해도 되지만 나중에 배포후 업데이트나 밸런스 패치에서 실행파일을 다시 빌드, 배포를 해야 되는 단점이 있다.
따라서 이런 수치들을 Json이나 XML파일에서 따로 관리하는 편이 더 좋다.
Json 파일에 data를 저장하고 Unity C# Script에서 어떻게 파싱하는지 알아보자
Json형식의 문법은 간단하다.
{} -> struct
[] -> List
라고 생각하면 된다.
먼저 unity project의 resource폴더 산하에 json 파일을 만들어준다.
txt 파일을 만들고 확장자를 .json
으로 바꿔주면 된다.
json 파일에 임의로 stats 수치를 만들어보면
stats 배열에 level, hp, attack 인자를 가지고 있는 구조체 3개가 있다고 이해하면 된다.
C#문법으로 변환한다면 이렇게 class구성이 될 것이고 이 형식으로 파싱을 할 것이다.
파싱하기 위해 class들에는 [Serializable]
을 붙여야한다는 것을 기억하자.
일단 resource파일에 있는 json 파일을 Load해보자
Load할때 형식은 TextAsset
으로 해야된다.
Load한 TextAsset을 Unity에서 제공하는 JsonUtillity.FromJson에 인자로 넘겨주면 된다.
이제 Debug를 해보면 data에 파싱한 데이터가 들어있는것을 확인할 수 있다.
여기서 주의해야할 점은 Class 필드의 이름이 실제 파일의 이름과 일치 해야한다는 것이다.
각각 모양이 가리키는 필드의 이름이 같아야 한다.