
Назад к Unity
DryreL Software Unity
Supabase Game Achievements
Достижения для игр на Unity, работающие офлайн
Выдавайте достижения мгновенно, даже офлайн, и безопасно синхронизируйте их, когда игрок снова в сети. Уже на GitHub.
Доступно на GitHub
- 0 мсОжидание сети при получении
- 3Сборки, ядро без движка
- MITБесплатно на GitHub
Обзор
Что он делает
Достижения для игр с приоритетом офлайна: мгновенное локальное получение, сохранения, устойчивые к вылетам, пакетная идемпотентная синхронизация с сервером, необязательное уведомление о получении и необязательный Unity Localization.
- Unity
- C#
- Supabase
- uGUI
- Лицензия MIT
Как это работает
С нуля до рабочего
- Создайте каталогОдин раз на игру выполните короткий SQL-скрипт в SQL-редакторе Supabase.
- Добавьте пакетУстановите по Git URL и один раз инициализируйте в первой сцене.
- Выдавайте из геймплеяВызовите TryUnlock. Это мгновенно, сохраняется локально и синхронизируется в фоне.
Возможности
Сделан, чтобы просто работать
- Сначала офлайнTryUnlock никогда не ждёт сеть: достижение выдаётся мгновенно и хранится локально.
- Сохранения, устойчивые к вылетамПрогресс переживает вылет или закрытие игры.
- Безопасная синхронизация с серверомДостижения отправляются в Supabase пакетами, и повторная синхронизация никогда их не дублирует.
- Уведомление о полученииНеобязательное всплывающее уведомление, когда достижение получено.
- ЛокализацияНеобязательная поддержка Unity Localization для названий и описаний.
- Ядро без движкаВ основной сборке нет ссылок на движок, поэтому её легко тестировать.
- Achievement DashboardОкно редактора для управления достижениями, смены стиля уведомления с живым превью и настройки правил без кода.
- Условные достиженияСчётчики, задания и правила «без провала» — во вкладке Rules панели или в коде.
- Уведомление, которое не мешаетВыезжает, встаёт в очередь вместо наложения, играет звук и никогда не блокирует ввод.
- Поддержка Dialogue SystemНеобязательная выдача из Dialogue System for Unity и пример интеграции с Patreon.
Начало работы
Установка и использование
- Откройте Package ManagerВ Unity выберите Window, Package Manager, затем кнопку +.
- Добавьте по Git URLВставьте URL репозитория и нажмите Add.
Затем в вашем коде
- Выдать
AchievementManager.TryUnlock("first_blood")Мгновенно и безопасно офлайн. Никогда не ждёт сеть. - Проверить
AchievementManager.HasUnlocked("first_blood")Узнайте, что у игрока уже есть. - Реагировать
AchievementManager.AchievementUnlocked += ...Запускайте свой код при каждом получении. - Синхронизировать
await AchievementManager.SyncAsync()Необязательно: только когда нужно знать результат.
Требования
Перед началом
- Unity 2022.3 или новее (проверено на 6000.3)
- Пакет Newtonsoft Json (com.unity.nuget.newtonsoft-json)
- uGUI
