Этот ассет был разработан с целью получения данных их гугл таблиц
Было разработанно специально для игровой студии ImmortalsGames
Вы также можете ознакомиться с примеров в
PackageManager
>Google Sheet Importer
>Samples
-
Для начала добавьте
NuGetForUnity
:Unity 2019.3 или новее
1.1. Открыть Package Manager window (Window | Package Manager)
1.2. Нажмите кнопку+
в левом верхнем углу окна и выберите "Add package from git URL..."
1.3. Введите следующий URL-адрес и нажмите кнопку«Добавить»
.https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity
Unity 2019.2 или ранее
1.1. Закрыть Unity Editor
1.2. Открыть Packages/manifest.json любым текстовым редактором
1.3. Вставьте следующую строку после"dependencies": {
, и сохраните файл."com.glitchenzo.nugetforunity": "https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity",
1.4. Снова откройте проект Unity в редакторе Unity.
-
Далее установите нужные пакеты через
NuGet
>Manage NuGet Package
-
Далее добавляем
UniTask
, скачиваем по ссылке и добавляем в проект. -
Далее добавим
Kimicu Google Sheet Importer for Unity
:Unity 2019.3 или новее
1.1. Открыть Package Manager window (Window | Package Manager)
1.2. Нажмите кнопку+
в левом верхнем углу окна и выберите "Add package from git URL..."
1.3. Введите следующий URL-адрес и нажмите кнопку«Добавить»
.https://github.com/Kitgun1/KimicuGoogleSheetImporter-for-Unity.git
Unity 2019.2 или ранее
1.1. Закрыть Unity Editor
1.2. Открыть Packages/manifest.json любым текстовым редактором
1.3. Вставьте следующую строку после"dependencies": {
, и сохраните файл."com.kimicu.googlesheetimporter": "https://github.com/Kitgun1/KimicuGoogleSheetImporter-for-Unity.git",
1.4. Снова откройте проект Unity в редакторе Unity.
- Создайте папку, в которой будем все обрабатывать.
- Создаем в этой папке
Assembly Difinition Reference
. - В поле
Assembly Difinition
указываемKimicu.GoogleSheetImporter
и сохраняем.
-
Создайте новые скрипты с названием таблиц, например:
У нас есть вот такая таблица:
-
Теперь зная таблицу, надо написать скрипт для хранения каждого поля, в нашем случае это:
[Serializable] public class ItemSettings { public string Id; public string Name; public int Price; }
- Создайте скрипт
GameSettings
. - Добавьте аттрибут
[Serializable]
. - Установите namespace -
Kimicu.ExcelImporter
. - Добавьте список всех таблиц в
GameSettings
, например:public List<ItemSettings> Products;
- Создаем новый скрипт, например
ItemSettingsParser
. - Наследуем его от
IGoogleSheetParser
и имплиминтируем нужные методы. - Далее напишем конструктор, который будет принимать в качестве аргумента
GameSettings
. - Кешируем и инициализируем всве внутренние поля.
- Прописываем логику для метода
Parse(string header, string token)
:switch (header) { case "Id": _currentItemSettings = new ItemSettings() { Id = token }; _gameSettings.Products.Add(_currentItemSettings); break; case "Name": _currentItemSettings.Name = token; break; case "Price": _currentItemSettings.Price = Convert.ToInt32(token); break; default: throw new Exception($"Invalid header: {header}!"); }
- В верхнем меню выбираем
Kimicu
>Config Import
. - Выбираем существующий или создаем новый в папке
Resources
SPREADSHEET_ID
берем из ссылки таблицыCREDENTIALS_PATH
- json файл с кренделями, который в лежит в корневой папке проекта Получить его можно в Google Developer Console, создав новый проект, добавив сервис аккаунт и ключ к немуITEMS_SHEET_NAME
- Название листа из Google SheetsSETTINGS_FILE_NAME
- Название файла, в котором будет json строка с данными из таблицыPARSER NAME
- название скрипта парсера, который унаследован отIGoogleSheetParser
- После нажатия на кнопку
Load Items Settings
, задите в папкеResources
и сделайте Refresh папки