Локальные внутриигровые достижения

Локальная система внутриигровых достижений, которая будет работать вне зависимости от наличия интернета у игрока и без необходимости подключения сторонних модулей. Основная задача была, создать достаточно простую и гибкую систему, чтобы разработчик мог легко настроить отдельные элементы системы. В частности, сами достижения, реализованы через скриптируемые объекты и автоматически подгружаются в базу данных, такой подход позволяет быстро редактировать, удалять или добавлять достижения. Дополнительно, встроена система сохранения и добавлена незамысловатая анимация для показа разблокированной ачивки.

Основная особенность, это быстрая настройка ачивок в папке Resources.


Настройки позволяют реализовать два типа достожения, пошаговые и обычные. Для разблокировки пошаговых ачивок, их нужно обновить N количество раз, например, собрать десять кристаллов и т.п.

Кроме этого менеджер ачивок поддерживает очередность, то есть, если одновременно было открыто несколько достижений, то они все будут показаны игроку по очереди.



Чтобы разблокировать простое достижение:
string id = "Achievement-1";

Achievements.Unlock(
       id,
       (bool success) => {
       Debug.Log(success ? "[" + this + "] --> Достижение успешно открыто: " + id : "[" + this + "] --> Ошибка открытия достижения: " + id);
});

Обновить пошаговое достижение:
string id = "Achievement-2";
int stepCount = 1;

Achievements.Increment(
       id,
       stepCount,
       (bool success) => {
       Debug.Log(success ? "[" + this + "] --> Успешное обновление достижения: " + id : "[" + this + "] --> Ошибка обновления достижения: " + id);
});

Проверить статус ачивки:
string id = "Achievement-1";

if (Achievements.IsComplete(id))
{
    // ...code...
}

Сохранить прогресс:
Achievements.Save();

Более подробно примеры можно посмотреть уже в живую, внутри кода так же есть комментарии.

Скачать проект:
https://boosty.to/null-code/posts/dbd530b6-2f1b-4b16-bed5-4fdb8960f881
Тестировалось на: Unity 2019.3.8
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика