Возможности
- Генерация xml и ScriptableObject на основе Google таблиц для Unity в один клик.
- Можно использовать графики, функции и формулы, доступные в Google Sheets.
- Таблицы позволяют хранить всю историю изменений, так что ваши данные не пропадут.
Как настроить?
-
В правом верхнем углу жмём кнопку Share и выставляем тип доступа к таблице
-
В Unity переходим в Tools->Google Sheet Integration и жмём Create Config
-
Заполняем все поля аналогичным образом и жмём кнопку сверху Generate class files. После того, как загрузился класс и Unity его скомпилировал, нажимаем Generate data files.
Поддерживаемые типы данных
- bool
- int
- long
- float
- string
- bool []
- int []
- long []
- float []
- string []
Автоматический вывод типа строки
Тип строки выводится автоматически на основе данных, находящихся в строке. Если все типы данных в строке совпадают, то общий тип будет соответствующим. Если типы данных не совпадают, то тип выводится как более общий для всех.
Например строка состоит из следующих типов:
- int int int float -> float. Результирующий тип строки - float
- bool string int -> string. Результирующий тип - string.
- int int long -> long. Результирующий тип - long.
- int float bool long string -> string. Результирующий тип - string.
Если в строке находится хотя бы одна ячейка типа string, то вся строка имеет тип string.
Числовые типы чувствительны к "." и ",". К примеру значение 4,5 будет распознано как строка.
Если вы хотите, чтобы строка имела тип float, но значения являются целыми, необходимо принудительно указать таблице, чтобы она отображала значения с цифрами после запятой (increase decimal places).
Структура URL
URL состоит из двух частей - id таблицы и id листа в этой таблице.
id таблицы вставляется в GoogleDriveFileGuid. id листа вставляется в GoogleDriveSheetGuid. Если вы делаете одну таблицу, которая включает много разных листов, то id таблицы везде одинаковый, а id листа уникален для каждого листа.
Структура таблицы
Создание массивов
Есть 2 способа задания массивов: путём создания каждого элемента массива на новой строчке и путём перечисления всех элементов через разделитель. Разделитель настраивается в поле Array separator. Эти методы можно комбинировать. На примере ниже все эти записи дадут на выходе массив следующего вида: int[] {10, 15, 30, 45, 65}.
Настройки ассета
После изменения данных в конфиге - лучше всего сохранить конфиг. После перекомпиляции скриптов, Unity потеряет все несохранённые изменения
Главное окно
-
Generate class files - Загружает все Google таблицы, описанные в Google sheet data и генерирует файлы .cs.
-
Generate data files - Загружает все Google таблицы, описанные в Google sheet data и генерирует файлы данных (SO или xml). Если в assembly нет нужного класса, то выводится LogWarning.
Окно Google sheet data
Описываются все таблицы, из которых нужно грузить данные.
- Sheet Name - Просто имя таблицы для удобства. Нигде не используется.
- GoogleDriveFileGuid - id таблицы.
- GoogleDriveSheetGuid - id листа в таблице.
- Data extension - Расширение data файла. Если это SO, то расширение устанавливается по дефолту .so.
- Data type - Выбор типа генерируемого файла (SO, xml).
- Namespace - При генерации класса (.cs), он будет помещён в данный namespace.
- Class location - Путь, по которому будет сохранён файл с классом.
- Data Location - Путь, по которому будет сохранён файл с данными.
- Variable type - Тип генерируемых переменных (свойство или поле). Доступно только для xml.
- Field access modifier - Возможность контролировать права доступа для генерируемых переменных (public|protected|private).
- Generate GET method - Если флаг установлен, то генерируются методы, которые возвращают содиржимое ассета по типам (int, int[], float, float[]...).
- Get method type - Есть два варианта: string и enum. string: Создает методы, где в качестве ключа выступает строка (имя переменной); enum: создается enum с именем Enum type name, который дублирует все имена переменных. Все Get методы принимают в себя этот enum.
- Enum type name - Имя перечисления.
- Generate class file - Генерирует файл класса только для данного листа.
- Generate data file - Генерирует файл с данными для данного листа.
- Remove - Удаляет данный sheet data из конфига.
- + - Добавляет ещё один sheet data .
- - - Удаляет последний sheet data.
Окно Settings
- Skip prefix - Если в первом столбце таблицы встречается запись, начинающаяся с данного префикса, то это запись идёт в класс в виде разделителя (генерируются атрибуты Space и Header).
- Use type name - Использовать ли столбец с типами для каждой строки или позволить программе автоматически его вычислять (пока не используется).
- Type column name - Имя колонки, в которой определен тип строки (пока не используется).
- Constant class name - Имя класса с константами (пока не используется).
- Constant class location - Местоположение класса с константами (пока не используется).
- Comment column title - Имя столбца, где находятся комментарии. Данный столбец содержит комментарии и генерирует Tooltip и xml комментарии в .cs файл. Допускается только один столбец с комментарием.
- Array separator - разделитель для задания массивов.
- Load config - загружает сохранённый конфиг из папки.
- Save current config - сохраняет все изменённые значения в файл.