2025-04-23 Unity에서 GoogleSheet JSON변환

강기수·2025년 4월 23일

1. MenuItem("Tools/Update DataTable"):

  • Unity 에디터의 메뉴에 "Tools"라는 항목을 추가하고 그 아래에 "Update DataTable"이라는 옵션을 생성한다.

  • 이 메뉴를 클릭하면 DownloadDataSheet() 메서드가 실행된다.

2. DownloadDataSheet() 메서드:

  • 이 메서드는 구글 시트의 데이터를 다운로드하고, 그 데이터를 TSV 형식에서 JSON 형식으로 변환한 후 프로젝트 내에 저장하는 비동기 메서드이다.

3. 저장할 디렉토리 및 파일 경로 설정:

  • saveDirectory: Application.dataPath 경로에 "DataTool"이라는 폴더를 생성한다. 이 폴더는 다운로드한 파일을 저장할 위치이다.

  • savePath: "Tutorial.json" 파일을 saveDirectory에 저장할 경로를 지정한다.

4. 구글 시트에서 데이터 다운로드:

  • url: 구글 시트에서 데이터를 다운로드할 URL을 구성한다. SheetInfoSO.Instance.url과 SheetInfoSO.Instance.sheetId를 통해 구글 시트 URL과 시트 ID를 동적으로 가져온다.

  • UnityWebRequest: 이 객체는 HTTP 요청을 보내고 응답을 받는 데 사용된다. SendWebRequest()를 통해 비동기 방식으로 데이터를 요청한다.

  • await Task.Yield(): 요청이 완료될 때까지 대기한다.

5. 응답 처리:

  • 다운로드가 성공하면, www.downloadHandler.text를 통해 다운로드한 TSV 형식의 텍스트 데이터를 가져온다.

  • 다운로드 실패 시 에러 메시지를 출력하고, 메서드를 종료한다.

6. TSV → JSON 변환:

  • ConvertTSVToJson(rawTSV) 메서드를 호출하여 TSV 형식의 데이터를 JSON 형식으로 변환한다.

  • 변환된 JSON 데이터를 지정된 경로에 File.WriteAllText(savePath, json)을 통해 저장한다.

7. 에디터 갱신:

  • AssetDatabase.Refresh(): 파일을 저장한 후 Unity 에디터에 파일 시스템 변화를 반영한다.

2개의 댓글

comment-user-thumbnail
2025년 4월 23일

동,,동적으로 동적으로 가져오는 거였어????여???
나 오늘 내 TIL에 정적 제이슨인 줄 알아서 그 아이를 말햇는데 뭐 그런거였군
억울핑 덕분에 제이슨이라는 친구를 알아갑니다,,훌륭하다 억울핑

답글 달기
comment-user-thumbnail
2025년 4월 23일

오 언젠가 분명히 써먹을 것 같은 아주 유익한 내용이네요 나중에 필요할 때 와서 보고 쓰겠습니다 감사합니다 앞으로도 화이팅이에요

답글 달기