Строительный блок достижений
Блок достижений Unity демонстрирует систему достижений, которая использует Unity Gaming Services (UGS).
Достижения синхронизируются и сохраняются в облаке Unity, что означает, что вы можете получить к ним доступ на любом другом устройстве или платформе, на которой работает тот же проект.
Модуль достижений использует следующий Unity Gaming Services:
| Unity Игровой Сервис | Описание |
|---|---|
| Сохранить облако | Хранит данные о статусе достижения игрока как Данные игрока и Game Данные. Для получения дополнительной информации см. Обзор Cloud Save. Чтобы узнать, как строительный блок достижений использует службу Cloud Save, см. Как строительный блок достижений сохраняет данные. |
| Облачный код | Выполняет действия с авторитетом сервера для заявки достижений. Дополнительные сведения о Cloud Code см. в разделе Обзор Cloud CodeЭтот строительный блок использует Модули Cloud Code для взаимодействия со службой Cloud Save. Дополнительные сведения см. в Развертывание модулей Cloud Code. |
| Аутентификация | Назначает каждому игроку уникальный идентификатор. Этот строительный блок использует аутентификацию для анонимного входа в систему. Чтобы использовать его, настроил аутентификацию. |
| Удаленная конфигурация | Хранит значения как пары ключ-значение в облаке как JSON файл. Для получения дополнительной информации, см. Обзор Remote Config. Этот строительный блок использует удаленный конфигурационной файл (.rc) для определения достижений в облаке. Чтобы узнать больше, см. Настройка строительного блока достижений. |
| Контроль доступа | Этот строительный блок использует управление доступом, чтобы ограничить игроков от записи в Cloud Save. Для записи в Cloud Save, используйте доверенный клиент, который использует Cloud Code Modules для аутентификации вызовов как доверенного источника. |
Предварительные условия
Для создания проекта для строительного блока достижений:
- Установите строительный блок Unity — Достижения из Unity Asset Store.
- Следуйте инструкциям в разделе Предварительные требования LiveOps Unity Building Blocks.
Первоначальная настройка
Чтобы использовать все функции Достижения тест сцена, выполните следующие действия.
Развертывание файла конфигурации
Тестовая сцена включает в себя файл конфигурации Achievement.ach для определения достижений в сцене.
- Настройка развертывания в проекте.
- Перейдите в Услуги > Развертывание.
- В течение Развертывание окно, расширить Blocks.Achievements раздел.
- Установите флажок Achievement.ach.
- Выберите Развертывание выбрано.
Развертывание модулей облачного кода
Испытательная сцена использует BlocksGameModule.ccmr Модуль Cloud Code для обновления глобального рейтинга. Для использования этого модуля:
- Настройка развертывания в проекте.
- Перейдите в Услуги > Развертывание.
- В течение Развертывание окно, расширить Blocks.CloudCode раздел.
- Установите флажки BlocksGameModule.ccmr и BlocksAdminModule.ccmr.
- Выбрать Развернуть выбранный.
Использование тестовой сцены строительного блока достижений
В тестовой сцене строительного блока достижений демонстрируются игровые достижения, которые можно заявить, переименовать и сбросить. Каждое достижение существует в одном из следующих состояний:
- Разблокировано
- Заблокировано
- Скрытые
- В стадии осуществления
Чтобы открыть тестовую сцену:
- В окне Project перейдите в Активы > Блоки > Достижения > TestScenes.
- Щелкните правой кнопкой мыши объект
AchievementsTestScene.unityи выберите Открыть.
Для использования тестовой сцены:
- Вход в режим игры. Во время экрана загрузки сцена получает достижения, определенные в файл конфигурации из Cloud Save.
- Сцена загружается и отображает достижения.
- Выберите кнопку Разблокировка достижения, чтобы получить его, или используйте кнопки + и -, чтобы изменить его прогресс.
- Выберите Сбросить достижения, чтобы вернуть достижения в их исходное состояние.
Как строительный блок достижений сохраняет данные
Модуль достижений использует Сохранить облако для хранения и отслеживания прогресса достижений каждого игрока.
Каждому игроку назначается пара «ключ — значение», сохраняемая в защищённом хранилище службы Cloud Save. Данные игрока хранятся под ключом achievements.
Модель данных AchievementDefinition определена в следующих местах:
- Чтобы найти локальный файл
AchievementDefinition.cs, перейдите в Активы > Блоки > Достижения > Сценарии > Время выполнения > - Чтобы найти файл Cloud Code:
- В течение Активы папка, щелкните правой кнопкой CloudCode.
- Выберите Просмотр в Explorer на Windows или Просмотр в Finder на macOS.
- Перейти к BlocksGameModule~ > Project > Достижение >
AchievementDefinition.cs.
Примечание: Фактически хранящиеся данные представляют собой массив объектов типа AchievementRecord.
Следующий скрипт является примером данных игрока, которые строительный блок достижений хранит в службе Cloud Save:
[
{
"Id": "first_achievement", // the ID of the achievement
"Unlocked": true, // the unlocked status of the achievement for the current player
"ProgressCount": // current progress relative to the ProgressTarget of the definition
}
]
Добавить достижения префаб в другую сцену
Чтобы использовать строительный блок достижений в новой сцене:
- Разверните Файл конфигурации достижений.
- Перейти к Активы > Блоки > Достижения > Префабы.
- Выберите
AchievementsPrefab, чтобы открыть его.
Любые изменения, внесенные в Achievements.ach, влияют на AchievementsPrefab в режиме игры. Чтобы узнать, как изменить Achievements.ach, см. Настройка строительного блока достижений.
Примечание: Чтобы создать новый файл конфигурации достижений, перейдите к Создать > Блоки > Конфигурация достижений.
Настройка строительного блока достижений
Вы можете настроить строительный блок достижений следующим образом:
- Измените файл конфигурации достижений.
- Измените Достижения префаб.
- Настройка политики управления доступом.
- Изменение данных о достижениях.
Изменение файла конфигурации
Файл Achievements.ach является типом файла Удаленная конфигурация (.rc), который отображает свойства конфигурации достижений в окне Inspector. Файл Achievements.ach должен соответствовать данным, определенным в файле AchievementDefinition. Дополнительные сведения см. в разделе Изменение данных достижений.
Чтобы изменить описание или внешний вид каждого достижения:
- В окне Project перейдите в Активы > Блоки > Достижения > Развертывание > Achievements.ach.
- Выберите Achievements.ach для отображения его свойств в Inspector.
- Чтобы применить изменения, разверните Achievements.ach в текущую среду.
Изменить достижения префаб
Чтобы внести изменения в Достижения префаб:
- Перейдите в окно Project.
- Перейти к Активы > Блоки > Достижения > Префабы.
- Выберите
AchievementsPrefab, чтобы просмотреть его свойства в Inspector.
Вы также можете включить Режим разработчика, чтобы изменить прогресс постепенных достижений в представлении Scene.
Следующие классы управляют данными, отображаемыми Achievements.ach:
AchievementAsset: Скриптовый объект в проекте.AchievementFile: Определяет, как отображается содержимоеAchievements.ach.-
AchievementAssetImporter: класс пользовательского импортёра, включающий пользовательский инспектор. AchievementAssetInspector: Сам таможенный инспектор.
Настройка политики управления доступом
Клиент достижений отправляет оценки в службу достижений. В блок входят следующие клиенты:
- Местный персонал (
LocalAchievementsClient): Отправляет результаты непосредственно в Cloud Save без проверки. Вы можете использовать политику Access Control для предотвращения обмана. - Доверенные (
TrustedAchievementsClient): призывает Облачный код C# модуль безопасно отправлять баллы.
Чтобы изменить клиента в тестовой сцене:
- Откройте Сцена теста достижений.
- В окне Hierarchy выберите
AchievementsPreviewGameObject. - В Inspector включите Использовать доверенный клиент.
Данные о достижениях
Файлы AchievementDefinition определяют свойства достижений, используемые в окне Achievements.ach Inspector. Чтобы узнать больше о файле Achievements.ach, см. Изменение файла конфигурации.
Места:
- Локальный: Активы > Блоки > Достижения > Сценарии > Время выполнения >
AchievementDefinition.cs - Код облака: Активы > Блоки > Достижения > CloudCode~ > Project > Достижение >
AchievementDefinition.cs
Чтобы изменить данные в этом файле:
- Обновите файл
AchievementDefinition.csв каждом расположении, чтобы их содержимое было точно таким же. - Разверните оба файла в окне Развертывание. Дополнительные сведения см. в разделе Развертывание файла конфигурации.
Устранение неполадок
Если оценки не видны и появляется предупреждение, это может быть связано с тем, что файл AchievementsAccessControl.ac запрещает доступ к записи для локального клиента. Чтобы исправить эту проблему:
- Перейдите в Услуги > Развертывание.
- Щелкните правой кнопкой мыши файл
AchievementsAccessControl.ac. - Выберите Удалить удаленный.
Дополнительные ресурсы
- Авторитет сервера
- Развертывание