public static bool CreateScriptableObjects <T>(string sheetName, string assetNameFormat) where T : ScriptableObject { bool success = true; try { SpreadsheetInformation sheetInfo = new SpreadsheetInformation { m_sheetName = sheetName, m_spreadsheetId = k_exampleSheetId }; GoogleSheet values = GrabSheetData(sheetInfo); string[] jsonArray = values.ToJsonRowArrays(GoogleSheet.HeadingAttributes.MEMBER_VARIABLE | GoogleSheet.HeadingAttributes.CAMEL_CASE); for (int i = 0; i < jsonArray.Length; i++) { T scriptableExample = ScriptableObject.CreateInstance <T>(); JsonUtility.FromJsonOverwrite(jsonArray[i], scriptableExample); AssetDatabase.CreateAsset(scriptableExample, string.Format(assetNameFormat, values.m_rows[i][0])); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } catch (Exception e) { LogError(e.Message); success = false; } return(success); }
public static IList <IList <object> > GrabRawSheetData(SpreadsheetInformation sheetInfo) { UserCredential credential = GetUserCredentials(); // Create Google Sheets API service. var service = new SheetsService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = Application.productName, }); SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(sheetInfo.m_spreadsheetId, sheetInfo.m_sheetName); ValueRange response = request.Execute(); return(response.Values); }
public static GoogleSheet GrabSheetData(SpreadsheetInformation sheetInfo, int headingRow = 0) { IList <IList <object> > values = GrabRawSheetData(sheetInfo); return(GetFilteredData(values, headingRow)); }