Назад к Unity

DryreL Software Unity

Supabase Game Achievements

Достижения для игр на Unity, работающие офлайн

Выдавайте достижения мгновенно, даже офлайн, и безопасно синхронизируйте их, когда игрок снова в сети. Уже на GitHub.

Доступно на GitHub

  • 0 мсОжидание сети при получении
  • 3Сборки, ядро без движка
  • MITБесплатно на GitHub

Обзор

Что он делает

Достижения для игр с приоритетом офлайна: мгновенное локальное получение, сохранения, устойчивые к вылетам, пакетная идемпотентная синхронизация с сервером, необязательное уведомление о получении и необязательный Unity Localization.

  • Unity
  • C#
  • Supabase
  • uGUI
  • Лицензия MIT

Как это работает

С нуля до рабочего

  1. Создайте каталогОдин раз на игру выполните короткий SQL-скрипт в SQL-редакторе Supabase.
  2. Добавьте пакетУстановите по Git URL и один раз инициализируйте в первой сцене.
  3. Выдавайте из геймплеяВызовите TryUnlock. Это мгновенно, сохраняется локально и синхронизируется в фоне.

Возможности

Сделан, чтобы просто работать

  • Сначала офлайнTryUnlock никогда не ждёт сеть: достижение выдаётся мгновенно и хранится локально.
  • Сохранения, устойчивые к вылетамПрогресс переживает вылет или закрытие игры.
  • Безопасная синхронизация с серверомДостижения отправляются в Supabase пакетами, и повторная синхронизация никогда их не дублирует.
  • Уведомление о полученииНеобязательное всплывающее уведомление, когда достижение получено.
  • ЛокализацияНеобязательная поддержка Unity Localization для названий и описаний.
  • Ядро без движкаВ основной сборке нет ссылок на движок, поэтому её легко тестировать.
  • Achievement DashboardОкно редактора для управления достижениями, смены стиля уведомления с живым превью и настройки правил без кода.
  • Условные достиженияСчётчики, задания и правила «без провала» — во вкладке Rules панели или в коде.
  • Уведомление, которое не мешаетВыезжает, встаёт в очередь вместо наложения, играет звук и никогда не блокирует ввод.
  • Поддержка Dialogue SystemНеобязательная выдача из Dialogue System for Unity и пример интеграции с Patreon.

Начало работы

Установка и использование

  1. Откройте Package ManagerВ Unity выберите Window, Package Manager, затем кнопку +.
  2. Добавьте по 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