Easy Game Data - Google Sheets to JSON to C# Class

This Unity plugin makes it incredibly easy to set up and retrieve data from Google Sheets in just a few minutes. Using a Google Service Account, you can securely work with private sheets, so your data stays protected while remaining fully accessible in your project. After a quick configuration, you can access your data directly as strongly-typed C# variables — without manually parsing JSON or creating data classes yourself.


The entire workflow is designed to be simple, intuitive, and beginner-friendly. Even with tens of thousands of variables, the plugin can quickly retrieve and load your data in just a few seconds, making it suitable for both small projects and large-scale applications. If you know how to access an array or a variable in C#, you already know how to use this plugin.


🔹 How It Works

  1. Create your data in Google Sheets
  2. Import the sheet using the plugin
  3. converts the data to JSONgenerates C# classesThe plugin automatically
  4. Access the data instantly in your Unity scripts
  5. On game start, a singleton script is initialized, providing easy access to your data throughout the project

No boilerplate code.

No complex setup.

No manual parsing.


🔹 Secure Private Sheets


This plugin uses a Google Service Account, allowing you to store your data in private Google Sheets. Unlike many similar plugins that require public sheets, your data remains secure and accessible only through your Unity project.



🔹 Example Usage


Accessing data is as easy as referencing a variable:


Debug.Log("Milk price in third cheap shop: " + GameData.cheapShops[2].milk);

Debug.Log("Egg price in first expensive shop: " + GameData.expensiveShops[0].egg);


🔹General access pattern:


<SheetName>[rowIndex].<columnName>


Row index starts from 0, just like standard C# arrays.


🔹 Working with Arrays


You can assign values directly:


bool butter = GameData.supermarkets[100].butter;

int[] juices = GameData.expensiveShops[5].juices;


To safely modify data locally without affecting the original array:


int[] juicesCopied = GameData.expensiveShops[5].juices.ToArray();


You can also access single array elements instantly:


int singleJuice = GameData.expensiveShops[5].juices[0];


🔹 Looping Through Data


Using a standard for loop:


for (int i = 0; i < GameData.expensiveShops.Length; i++)

Debug.Log(GameData.expensiveShops[i].bread);


Or a clean foreach loop:


foreach (ExpensiveShopsObj shop in GameData.expensiveShops)

Debug.Log(shop.bread);


🔹 Performance & Scalability


Even with tens of thousands of variables, this plugin retrieves and loads data in just a few seconds.

It works reliably for both small prototypes and large-scale projects.


🔹 Supported Variable Types

  • Int
  • Float
  • Bool
  • String
  • Int Array
  • Float Array
  • Bool Array
  • String Array
  • 2D Int Array
  • 2D Float Array

🔹 Why Use This Plugin?


✔ Extremely easy to use

✔ Clean and readable C# API

✔ No JSON parsing required

✔ Perfect for designers and programmers working together

✔ Beginner-friendly, but production-ready

✔ Ideal for game balance, configuration data, and live iteration

✔ Supports private Google Sheets via Google Service Account — no need to make your sheets public


⭐ Support & Reviews

If this plugin saves you time or simplifies your workflow,

please consider leaving a review on the Asset Store — it helps other developers find this tool and supports future updates.