[게임 제작기]/[연유와의 나들이]

[연유와의 나들이] 리뉴얼 1. 구글 스프레드 시트에 저장한 데이터를 유니티로 로드(feat. Google Sheets To Unity)

극꼼 2023. 10. 23. 02:26
반응형


가장 먼저 할 일은 테이블 데이터를 구글 스프레드 시트에 저장하고, 유니티에서 불러올 수 있게 세팅해주는 것입니다.

1. Google Sheets To Unity Asset 설치

2. 구글 시트와 유니티 연동

3. 구글 시트에 임의의 데이터를 입력하고, GoogleSheetsManager를 만들어서 데이터를 로드


1. 어셋스토어에서 Google Sheets To Unity 라는 Asset을 설치해줍니다.

https://assetstore.unity.com/packages/tools/utilities/google-sheets-to-unity-73410

 

Google Sheets To Unity | 유틸리티 도구 | Unity Asset Store

Use the Google Sheets To Unity from Greener Games on your next project. Find this utility tool & more on the Unity Asset Store.

assetstore.unity.com

 

프로젝트에서 Package Manager 창을 열어 다운받고 import 해줍니다.

 

정상적으로 임포트가 완료되었다면 윈도우 탭에 GSTU항목이 생겼을 것입니다.


2. 구글 시트와 유니티 연동

아래 링크에 접속해서 사용할 구글시트가 있는 구글 아이디로 로그인해줍니다.

https://console.developers.google.com/

 

Google Sheets를 검색해서 나오는 Google Sheets API에 들어가서 활성화 시켜준 다음 OAuth 클라이언트 ID를 하나 생성해주어야 합니다.

 

생성하면 나오는 아이디와 비밀번호를 Window - GSTU - Config에 입력해줍니다. Port number는 8080으로 해줍니다.

 

그 후 구글에서 로그인하면 이렇게 확인하지 않은 앱이라고 뜹니다. 고급 -> 이동 버튼을 눌러서 나오는 권한 부여 창에서 허용해주면 됩니다. 다음과 같이 연동되었다는 문구가 나오면 끝난겁니다.


3. 구글 시트에 임의의 데이터를 입력하고, GoogleSheetsManager를 만들어서 데이터를 로드

이제 불러올 데이터를 다음과 같이 구글 시트에 입력해주었습니다.

 

데이터를 로드해오는 것은 간단합니다. SpreadsheetManager.Read()를 사용하면 됩니다. 

SpreadsheetManager.Read(new GSTU_Search(SheetId, FlowManagementDataSheet), UpdateSheetsData);

// Read() 메서드를 뜯어보면 코드는 다음과 같이 되어 있습니다.
public static void Read(GSTU_Search search, UnityAction<GstuSpreadSheet> callback, bool containsMergedCells = false)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("https://sheets.googleapis.com/v4/spreadsheets");
    sb.Append("/" + search.sheetId);
    sb.Append("/values");
    sb.Append("/" + search.worksheetName + "!" + search.startCell + ":" + search.endCell);
    sb.Append("?access_token=" + Config.gdr.access_token);
    UnityWebRequest request = UnityWebRequest.Get(sb.ToString());
    if (Application.isPlaying)
    {
        new Task(Read(request, search, containsMergedCells, callback));
    }
#if UNITY_EDITOR
    else
    {
        EditorCoroutineRunner.StartCoroutine(Read(request,  search, containsMergedCells, callback));
    }
#endif
}
  • GSTU_Search() : 시트 데이터에 접근하기 위한 클래스입니다. 
    • SheetId : 구글시트가 있는 주소 아이디입니다. 아래 캡쳐에 표시한 부분을 복사해서 입력해줍니다.
    • FlowManagementDataSheet : 불러올 시트 이름입니다.

  • UpdateSheetsData : 데이터를 가져온 후 부러올 콜백입니다. GstuSpreadSheet를 매개변수로 가집니다.

이렇게 하면 유니티로 구글시트 데이터를 불러올 수 있습니다. 이제 이 데이터를 어떻게 활용할지는 고민해봐야 할 것 같습니다.

다음 포스팅에서는 Google Sheets To Unity 활용법에 대해서도 더 자세히 알아보고 재활용 가능한 패널과 팝업을 만들어서 데이터로 구성할 수 있도록 해보겠습니다.

반응형