###1.本題
こんにちは、私はグーグルスプレッドシートの値をGASを利用して操作し範囲指定した箇所をJSON形式としてUnity側に読み込ませたいのですが、このサイトを利用したところGET()のところのJSON取得部分が省略されて書かれています
C#
1 2IEnumerator Get (string url) { 3 // HEADERはHashtableで記述 4 Hashtable header = new Hashtable (); 5 header.Add ("Accept-Language", "ja"); 6 7 // 送信開始 8 WWW www = new WWW (url, null, header); 9 yield return www; 10 11 // 成功 12 if (www.error == null) { 13 Debug.Log("Get Success"); 14 15 // 本来はサーバからのレスポンスとしてjsonを戻し、www.textを使用するが 16 // 今回は便宜上、下記のjsonを使用する 17 string txt = "{\"name\": \"okude\", \"level\": 99, \"friend_names\": [\"ichiro\", \"jiro\", \"saburo\"]}"; 18 // 自作したTestResponseクラスにレスポンスを格納する 19 TestResponse response = JsonMapper.ToObject<TestResponse> (txt); 20 Debug.Log("name: " + response.name); 21 Debug.Log("level: " + response.level); 22 Debug.Log("friend_names[0]: " + response.friend_names[0]); 23 Debug.Log("friend_names[1]: " + response.friend_names[1]); 24 Debug.Log("friend_names[2]: " + response.friend_names[2]); 25 } 26 // 失敗 27 else{ 28 Debug.Log("Get Failure"); 29 } 30 }
どうすれば、GASで記述したdoGET()のreturn部分の情報をUnity側で扱えるのでしょうか?(GAS側からのreturnの値はどこに格納されているまたどのような形式で格納されているのでしょうか?)
GAS自体のプログラムイメージはこのサイトをイメージしています
JavaScript
1var url = 'https://docs.google.com/spreadsheets/d/***スプレッドシートID***/pubhtml'; 2var sheetName = '***シート名***'; 3var book = SpreadsheetApp.openByUrl(url); 4var sheet = book.getSheetByName(sheetName); 5 6function doOutput(e){ 7 var json = convSheet(sheet); 8 Logger.log(JSON.stringify(json)); 9 return JSON.stringify(json); 10} 11 12function convSheet(sheet) { 13 14 var colStartIndex = 1; 15 var rowNum = 1; 16 var firstRange = sheet.getRange(1, 1, 1, sheet.getLastColumn()); 17 var firstRowValues = firstRange.getValues(); 18 var titleColumns = firstRowValues[0]; 19 20 var lastRow = sheet.getLastRow(); 21 var rowValues = []; 22 for(var rowIndex=2; rowIndex<=lastRow; rowIndex++) { 23 var colStartIndex = 1; 24 var rowNum = 1; 25 var range = sheet.getRange(rowIndex, colStartIndex, rowNum, sheet.getLastColumn()); 26 var values = range.getValues(); 27 rowValues.push(values[0]); 28 } 29 30 var jsonArray = []; 31 for(var i=0; i<rowValues.length; i++) { 32 var line = rowValues[i]; 33 var json = new Object(); 34 for(var j=0; j<titleColumns.length; j++) { 35 json[titleColumns[j]] = line[j]; 36 } 37 jsonArray.push(json); 38 } 39 return jsonArray; 40} 41
上記で使用されているのはdoOutput()ですが、doOutput()じゃないとだめなのでしょうか?
またdoOutput()とdoGet()の違いは何なのでしょうか?
###2.備考
・筆者はGASを使うのがはじめてなので、できる限りはじめっから具体的に説明してもらえると助かります
###3.追加質問
・returnで返される値の型はどんなものがあるのしょうか?
・Json形式によるやり取りとJsonファイルによるやり取りの違いはなんなのでしょうか?(今回の場合ではどちらの方法でも実行可能なのでしょうか?)
###4.環境
・Windows10
・Unity 2018.1.4

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/18 03:10
2018/06/18 04:35
2018/06/18 04:38
2018/06/19 03:09