Как импортировать конфиги из гугл таблиц в Unity
HTML-код
- Опубликовано: 1 июн 2024
- Понравилось видео? Поддержи Лавку Разработчика!
www.donationalerts.com/r/game...
boosty.to/gamedevlavka
paypal.me/gamedevlavka
Гугл таблицы - очень удобный и полезный инструмент для создания игр. В нем удобно расписывать характеристики предметов, персонажей, машин, уровней, подсвечивать все, разукрашивать, строить графики. Результаты работы с гуглотабличками можно легко импортировать в юнити! Нужно всего лишь... А что нужно - подробно рассказывается в новом видео из Лавки Разработчика! Там и про сервисный аккаунт гугла, и про Credentials, чтобы все безопасно, и про импорт данных по одной кнопочке - красота! Приглашаю к просмотру.
NuGetForUnity: github.com/GlitchEnzo/NuGetFo...
Отсылки:
t.me/gamedevlavka - телеграм канал Лавки Разработчика
t.me/gamedevtavern - ламповый чат
/ discord - дискорд
__________
0:00 Предисловие
2:22 Ставим NuGetForUnity
3:11 Ставим Google.Apis и Google.Apis.Sheets
3:37 Настройка сервисного аккаунта Google для доступа через API
7:21 Пишем импортер таблиц в Unity
13:25 Пишем скрипт для меню в Unity
15:04 Смотрим результат загрузки гугл таблицы в Unity
15:30 Создаем абстрактный парсер данных
17:29 Пишем классы конфигов
18:32 Пишем пример конкретного парсера
21:58 Дорабатываем меню для полноценного импорта и парсинга
23:12 Обрабатываем загрузку и сохранение конфигов
25:13 Проверяем работоспособность
Уроки очень интересные спасибо большое автору. Потому что на тему инвентаря видео как кот наплакал с граммотным кодом и архитектурой .
Не, ну сначала всегда надо пообедать, а потом урок писать)
как же вовремя видео, спасибо)
Если приватность документа не критична и вы собираетесь в любом случае тянуть весь документ, может быть достаточно просто сгенерить публичную ссылку на скачивание документа в csv формате (в гугле download link for spreadsheets csv export) и распарсить её на клиенте аналогичным образом. Тогда не нужно будет возиться ни с пакетами, ни с апи, ни с учеткой гугла.
Но предложенный в видео вариант, конечно, более серьёзный.
Все верно, можно быстрый вар запилить способом описанным выше. Подход с парсером останется, а вот первая часть видео сократится значительно. Может быть сделаю это в отдельном видео, как вариант
Огнище! Очень полезное видео. Спасибо
спасибо автор! то что нужно !
Мы всё ещё очень ждём обновлённую версию архитектуры:)
Супер) Спасибо! Долго ждал)) Лучшее видео по теме в ютубе на русском. Еще, как вариант, автоматически формируют json прям в гугл-табличке в последней ячейке каждой строки, а далее в одной ячейке так же автоматически собирают полный json для таблички. Потом либо руками копируют в проект, либо выгружают чз апи тоже. Но ваш вариант мне больше нравится
Не могу найти доки с кодом, скинь пожалуйста... Очень хочется... Апишечку...
Видео конечно отличное, но из-за сильного приближения к Rider, невидно части кода которая уходит за правый край экрана. Ты копируешь всё из документации, а самой документации в описании ролика нет. Я попытался сам найти, увы не нашёл(именно то откуда ты копировал).
Да, верно, за это прошу прощения! Я делаю ассет, который будет иметь весь нудный исходный код, когда доделаю, прикреплю в описание. А пока код этого класса можно скачать отсюда (ссылка на коммент в телеге): t.me/gamedevlavka/655?comment=6940
Отличное видео, как раз задавался вопросом загрузки и сохранения конфигов в гугл таблички. Вот бы еще видео по сохранению измененных конфигов обратно в гугл таблицу.
Хотелось бы видео о том, как в игру в итоге эти данные пробросить лучше всего. В каком виде - json, в скриптабл обжекты писать, мб еще что-то
Я дошел до этого момента. А будет ли вторая часть на эту тему или нет?
Будет использование таблиц для конфигов, да, в будущем
Ура таблицы, хочу научиться
Как то не нравится мне, как парсер устроен, что он подразумевает в каком порядке в него данные будут передаваться. Лучше сделать у него методы оповещающие о начале передачи нового элемента и об окончании.
круто-круто
А можно ссылку на саму документацию откуда код был взят и тд?
Отличное видео, спасибо. Вот интересно, а если так у пользователей при каждом запуске игры будет подобный конфиг загружаться, то гугл по шапке не настучит? (за превышение лимита чтения, трафика или чего-то такого)
Там есть квоты, можете погуглить google sheets usage limit. На данный момент это 60 запросов в минуту на пользователя проекта и 300 запросов в минуту на проект в целом. По этой причине при использовании в продакшене, нужно трекать коды ошибки, и если приходят 429, то ждать с нарастающим интервалом после каждой неудачной попытки.
Дело в том, что в видео я говорю об импорте конфига в проект, не в игру в рантайме. В рантайме обычно делают в связке с собственным сервером, а не сервисом гугла. Происходит это так: клиенты стягивают готовый файл конфига с собственного сервера и пользуются им. Геймдизайнеры правят гуглотаблички как им надо, и по нажатию кнопочки, таблица импортируется на сервер по такому же алгоритму примерно, как показано в видео. Только в видео в проект импорт, в случае работы с сервером - нужно импортить на сервер.
А регулировать трафик на свой сервер значительно проще и дешевле.
Вопрос, а как потом iconName использовать?
Где можно взять доки с кодом?
Еде ECS?
На скриптабл объектах часто у меня ветвистая система. Один конфиг содержит ссылку на несколько других, а ещё имеет один или несколько массивов неопределённой длины. Как это сделать через таблицы, раз уж таблицы всем лучше?
Об этом говорится в видео. У тебя один файл с конфигами, который состоит из частей, за которые и отвечают отдельные листы. В видео корневой класс - GameSettings, подкласс - ItemsSettings. Импортер скачивает лист и заполняет только одну составляющую GameSettings. Связи строятся как и везде в базах данных - на ключах в виде IDшников