본문 바로가기
Works/Unity 3D

[Unity] Google Spreadsheet 활용법

by Vader87 2020. 10. 2.
반응형

백엔드 시스템을 갖출 수 없는 경우 Google Spreadsheet 를 활용하면 간단하면서도 어느정도 대체 가능한 시스템을 구축할 수 있다.

1. 다운로드

장점 - 가장 쉬움

단점 - 데이터가 보호되지 않음

IEnumerator RequestSheetData(string docId, string gid)
{
	UnityWebRequest www = UnityWebRequest.Get($"https://docs.google.com/spreadsheets/d/{docId}/export?format=tsv&gid={gid}");
	yield return www.SendWebRequest();
        
	if (www.isHttpError == true || www.isNetworkError == true)
    	yield break;
        
	Parser(www.downloadHandler.text);
}

Spreadsheet 주소

https://docs.google.com/spreadsheets/d/{DOCUMENT_ID}

{DOCUMENT_ID} 값은 아래의 빨간 밑줄 부분 참고

Google Documentation 에서 사용하는 URL Parameter 모음 (Official 자료는 없음)

Default Parameters 설명
/copy  
/export 다운로드
/export?format=[csv|tsv] 다운로드 포멧 지정
/edit  
/preview  
/create  
/pub?  
/fm?id=  
/tq?tqx=out:html  
Optional Parmeters 설명
&key=[ID]  
&gid=[#] Spreadsheet 의 Sheet ID
&single=[true|false]  
&range=[CellAddress|CellAddress1:CellAddress2] 지정한 Cell 주소값 범위 내의 데이터만 필터링
&embedded=[true|false]  
&widget=[true|false]  
&output=[html|txt|csv|pdf]  
&gridlines=[false]  
&rm=[minimal|embedded|full|demo|?]  
&ui=2 (interface version)  
&chrome=[false] (full screen mode)  
&width=[width]  
&height=[height]  
&frameborder=[size of border]  
&q=[Search Query]  
&viewer?  
&start=  
&channel=  
&ibd=  
&client=  
&fmcmd=12  
&size=0  
&fzr=[true]  
&portrait=[false]  
&fitw=[true]  
&printtitle=[true]  
&sheetnames=[true]  
&pagenum=[CENTER]  
&attachment=[true]  
&alt=[rss]  
&tq=[query params here]  
&copyDestination=[Drive FolderID]   

CSV 와 TSV Format 차이 비교

Spreadsheet 값

KEY EN KR
google_signin Sign in with Google 구글 로그인
..    
,,    
.,    
,.    

CSV Format

  • 쉼표(,)로 구분
  • 값에 쉼표가 들어가면 데이터가 변질됨
KEY,EN,KR
google_signin,Sign in with Google,구글 로그인
..,,
",,",,
".,",,
",.",,

TSV Format

  • 탭(/t)으로 구분
KEY	EN	KR
google_signin	Sign in with Google	구글 로그인
..		
,,		
.,		
,.		

 

2. Google Script API 를 사용해 Spreadsheet 의 데이터를 가공해 다운로드

Google Script API 를 통해 Spreadsheet 값을 재가공해 다운로드

developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app

 

Class SpreadsheetApp  |  Apps Script  |  Google Developers

newRichTextValue() Creates a builder for a Rich Text value. // Sets cell A1 to have the text "Hello world", with "Hello" bolded. var cell = SpreadsheetApp.getActive().getRange('A1'); var bold = SpreadsheetApp.newTextStyle().setBold(true).build(); var value

developers.google.com

 

3. Spreadsheet 값을 Firebase Realtime Database 에 동기화해 사용

Firebase Realtime Database 환경 구성

다음 방법을 통해 Google Script API 를 추가하면 Spreadsheet 값이 자동으로 Firebase Realtime Database 에 반영됨

medium.com/firebase-developers/sheets-to-firebase-33132e31935b

 

Sync Google Sheets to a Firebase Realtime Database

Often when testing a design, it’s useful to create a prototype with realistic data. Users tend to give better feedback when the content is…

medium.com

 

반응형

'Works > Unity 3D' 카테고리의 다른 글

[Unity] Terrain Optimization  (0) 2020.10.13
[Unity] Optimize Light for mobile  (0) 2020.10.07
[Unity] Firebase Cloud Functions  (0) 2020.10.01
[Unity] Toon Shader  (0) 2020.09.26
[Unity] PostProcessing  (0) 2020.09.25

댓글