개인 포트폴리오 - (2) 외부 데이터(구글 스프레드시트) JSON화

이형눈이이상해
이형눈이이상해
∙∙조회 4
개인 포트폴리오 - (2) 외부 데이터(구글 스프레드시트) JSON화

1. 구글 스프레드 시트에 데이터 작성(스키마 설계)

  • 현재 외부에서 유닛과 무기 정보에 대한 것을 이렇게 적었다.

  • 첫 행은 헤더, 두번째 행은 자료형으로 두었으며 세번째 행부터 해당 유닛 혹은 무기별 정보가 나오는 구조이다.
  • 최소한의 것들만 들고 가는 형태가 저런 느낌이다.

<걷어낼 것들은 빨리 걷어내는 것이 좋다 내려>

  • 뭐 그래 여기까진 개쉬운 단계라고 할 수 있다(문제는 맵은 아직 엄두도 안나서 건들지도 못했다).

2. 외부 데이터 반입

  • 스크립트 하나를 만들어서 로더를 다음과 같이 필드 구성을 했고

  • 인스펙터 단에는 저렇게 해놨다

<그대로 링크 넣으면 어떤 형식으로 받아올 것인지도 모른다>

  • 일단 레퍼런스대로 진행을 하면 이런 느낌으로 가는데..
  • 추가적으로 저것을 담는 Scriptable Object가 필요하다. 그래서 이런 식으로 값들을 담는 것을 만든다.

  • 스프레드시트에서 썼던 내용 + 사용하게 될 프리팹 정도를 필드에 두고 시트에 있는 정보를 받을 함수를 설정한다.
  • SO 단에서 쓸 것이기 때문에 어떻게든 쓰인다.

<뭔가 쓸 곳 없어 보이는 것이라도 안 쓰일 필드 값은 없으니 안심하도록>

  • 아무튼 로더로 돌아와서 로더 상에서 이것 저것을 해줘야 한다.
  • Awake 단에서는 Dictionary로 지정한 것 안에다가 ID별로 정보를 담아준다.

  • 다 그런 것은 아니지만 로더의 기능은 다음과 같은 흐름을 가진다.
  • Awake(Dictionary 등록) → LoadUnitTable(다운로드) → ConvertTsvToJson(변환, 내부에서 ParseLine 반복) → ApplyToJson(SO 적용) → TryGetUnitData(외부 조회 용도)

  • 뭔가 왔다갔다하는 느낌인데 일단 이렇게 진행
  • 로더를 통해 이렇게 세팅을 해두고 데이터 로더에도 넣어주고 실행하면

  • 이렇게 들어간다는 것.
  • 이후에 내용은 3을 통해서 좀 더 보강해서 돌아오도록 해보겠다.

<두둥 탁 커밍 순>