Unity

유니티 에디터 메뉴에 커스텀 버튼 만들기 및 구글 스프레드시트에서 데이터 불러와서 파일로 저장하기 Creating a custom button in the Unity Editor menu and loading data from Google Spreadsheet and saving it as a file

정보처리마법사 2024. 1. 31. 10:52
반응형

 

 

유니티 에디터 메뉴에 커스텀 버튼 만들기 및 구글 스프레드시트에서 데이터 불러와서 파일로 저장하기 Creating a custom button in the Unity Editor menu and loading data from Google Spreadsheet and saving it as a file

 

 

 

 

이모티콘・01・고양이 마멋 친구들 - Google Play 앱

이모티콘・01・고양이 마멋 친구들: 무료 이모티콘, 회원가입 없이! 카톡, SNS로 감정 표현이 쉬워져요. 귀여움 가득, 대화창을 더 풍성하게!

play.google.com

 

 

구글 스프레드시트에서 데이터를 불러오거나 저장하기 위해서는 Google Sheets API를 사용해야 한다. 이를 위해서는 구글 클라우드 플랫폼에서 프로젝트를 생성하고, API 키를 발급받아야 한다.

 

Unity에서 구글 스프레드시트의 데이터를 CSV 형식으로 불러오는 예제코드. 이 코드는 Google Sheets API와 Unity의 UnityWebRequest를 사용한다. 실제로 사용하기 위해서는 실제 API키와 실제 스프레드시트 ID가 필요하다.

 

스프레드시트 데이터 불러오기

먼저, Google Sheets API를 사용하여 데이터를 불러오는 방법이다.스프레드시트가 공개적으로 접근 가능해야 하며, 스프레드시트의 ID를 알아야 한다.

 

https://docs.google.com/spreadsheets/d/[스프레드시트ID]/edit#gid=[시트ID]

이런 식으로 생겼는데, /d/  ~ /edit 사이가 스프레드시트ID, #gid= 뒷부분이 시트ID이다.

 

 

CSV 파일로 저장하기

받은 데이터를 CSV파일로 저장하는 것은 Unity에서 파일 입출력을 이용하여 수행할 수 있다. 아래 코드는 받은 데이터를 CSV파일로 저장하는 모습이다.

 

 

이 코드를 사용하여 받은 데이터를 data.csv 파일로 저장할 수 있다. SaveDataToCSV 메서드를 GetDataCoroutine 코루틴에서 받은 데이터 처리 부분에 추가하여 사용할 수 있다.

 

주의사항: API키와 스프레드시트ID는 위의 코드에서 "YOUR_API_KEY"와 "YOUR_SPREADSHEET_ID"에 해당하는 부분에 실제 키와 아이디값으로 대체해야 한다. 그리고 이 튜토리얼의 용도는 게임을 개발할때 데이터를 편리하게 취합하는 용도이지 실제 서비스 하는 게임에 사용하려면 Google Sheets API의 사용량 제한과 요금 정책을 확인해야 하고, 데이터 보안과 개인정보 보호를 고려해야 한다. 그리고 키와 ID를 하드코딩하게 되면 쉽게 노출될 가능성이 높으므로 암호화(Proguard 등)를 꼭 해야한다.

 

유니티 에디터에서 사용자 정의 메뉴 항목을 만들어 스프레드시트 데이터를 불러오는 기능을 구현한 예제이다. 이를 위해 유니티의 에디터 스크립팅 기능을 사용한다. 아래 코드는 에디터 메뉴에 새로운 항목을 추가하고, 이 항목을 클릭 했을 때 스프레드시트의 데이터를 불러오는 방법을 보여준다.

먼저, 기존의 GoogleSheetsToCSV 클래스에 에디터 메뉴를 위한 메서드를 추가한다.

이 스크립트는 "My Tools"라는 새로운 메뉴 항목을 Unity 에디터 메뉴에 추가한다. "Load Data From Google Sheets"라는 옵션버튼을 클릭하면 LoadDataFromGoogleSheets 메서드가 실행이 된다.

 

주의사항: 에디터 스크립트는 프로젝트의 "Editor"폴더 내에 있어야 동작을 한다. 없다면 생성을 해야 한다. Editor 폴더의 위치는 어디든 상관이 없고 폴더명만 일치하면 된다. MenuItem 애트리뷰트를 사용한 메뉴 항목은 에디터 모드에서만 작동을 한다. 실제 데이터 로드 로직은 네트워크 요청과 파일 입출력을 포함할 수 있으므로, 비동기 처리와 예외 처리를 적절히 고려해야 한다.

 

 

파일이 생성된 위치는 이 포스팅을 참조하면 된다.

https://ssscool.tistory.com/725

 

반응형

 

 

 

아래는 하나의 스크립트로 정리한 것인데 위쪽의 스크립트들과, 아래 이 통합스크립트를 참고해서 본인의 것을 만들면 될 듯 하다.

 

 

혹시라도 권한이 없다는 에러메시지가 나온다면, 아래와 같이 구글 스프레드시트의 우측 상단 공유 버튼을 선택 후, 액세스권한을 '링크가 있는 인터넷상의 모든 사용자가 볼 수 있음' 뷰어 로 바꿔주면 된다.

 

 

 

 

 

 

두더지게임: 리마스터 무료 게임쿠폰

두더지게임: 리마스터 무료 게임쿠폰 "여러분 공짜 쿠폰입니두더지!!" 구글플레이스토어에서만 됩니두더지! 애플 앱스토어는 정책상 안됩니두더지! 10만골드 2024 20만골드 새해복 30만골드 가족 4

ssscool.tistory.com

 

 

[무료게임쿠폰] 두더지게임: 리그 오브 두더지

[무료게임쿠폰] 두더지게임: 리그 오브 두더지 구글플레이스토어 쿠폰사용 O, 앱스토어 쿠폰사용 X (앱스토어 정책상) 10만골드 가족 20만골드 건강 30만골드 자유 40만골드 행복하자 50만골드 아프

ssscool.tistory.com

 

 

[무료게임쿠폰] 방구키우기: 리그 오브 방구 타이밍 배틀

[무료게임쿠폰] 방구키우기: 리그 오브 방구 타이밍 배틀 구글플레이스토어 쿠폰사용 O, 앱스토어 쿠폰사용 X (앱스토어 정책상) 2022년 07월 29일 이후 업데이트버전 v.1.200.78 이후 버전으로 업데이

ssscool.tistory.com

 

 

[무료게임쿠폰] 뽑기 키우기: 리그 오브 뽑기

[무료게임쿠폰] 뽑기 키우기: 리그 오브 뽑기 다이아 100개 쿠폰 테슬라 다이아 200개 쿠폰 건강 다이아 300개 쿠폰 부자 다이아 400개 쿠폰 행복 다이아 600개 쿠폰 자유 다이아 700개 쿠폰 휴식 다이

ssscool.tistory.com

 

 

똥 피하기: 리그 오브 똥 - Google Play 앱

이 재미있는 가족 친화적인 게임에서 똥을 피하세요! 깨끗하게 유지하며 즐기세요!

play.google.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형