Unity 6.3
0 онлайн 85 гостей 3 в системе
Вход

Строительный блок достижений

Блок достижений 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 для аутентификации вызовов как доверенного источника.

Предварительные условия

Для создания проекта для строительного блока достижений:

Первоначальная настройка

Чтобы использовать все функции Достижения тест сцена, выполните следующие действия.

Развертывание файла конфигурации

Тестовая сцена включает в себя файл конфигурации Achievement.ach для определения достижений в сцене.

  1. Настройка развертывания в проекте.
  2. Перейдите в Услуги > Развертывание.
  3. В течение Развертывание окно, расширить Blocks.Achievements раздел.
  4. Установите флажок Achievement.ach.
  5. Выберите Развертывание выбрано.

Развертывание модулей облачного кода

Испытательная сцена использует BlocksGameModule.ccmr Модуль Cloud Code для обновления глобального рейтинга. Для использования этого модуля:

  1. Настройка развертывания в проекте.
  2. Перейдите в Услуги > Развертывание.
  3. В течение Развертывание окно, расширить Blocks.CloudCode раздел.
  4. Установите флажки BlocksGameModule.ccmr и BlocksAdminModule.ccmr.
  5. Выбрать Развернуть выбранный.

Использование тестовой сцены строительного блока достижений

В тестовой сцене строительного блока достижений демонстрируются игровые достижения, которые можно заявить, переименовать и сбросить. Каждое достижение существует в одном из следующих состояний:

  • Разблокировано
  • Заблокировано
  • Скрытые
  • В стадии осуществления

Чтобы открыть тестовую сцену:

  1. В окне Project перейдите в Активы > Блоки > Достижения > TestScenes.
  2. Щелкните правой кнопкой мыши объект AchievementsTestScene.unity и выберите Открыть.

Для использования тестовой сцены:

  1. Вход в режим игры. Во время экрана загрузки сцена получает достижения, определенные в файл конфигурации из Cloud Save.
  2. Сцена загружается и отображает достижения.
  3. Выберите кнопку Разблокировка достижения, чтобы получить его, или используйте кнопки + и -, чтобы изменить его прогресс.
  4. Выберите Сбросить достижения, чтобы вернуть достижения в их исходное состояние.

Как строительный блок достижений сохраняет данные

Модуль достижений использует Сохранить облако для хранения и отслеживания прогресса достижений каждого игрока.

Каждому игроку назначается пара «ключ — значение», сохраняемая в защищённом хранилище службы Cloud Save. Данные игрока хранятся под ключом achievements.

Модель данных AchievementDefinition определена в следующих местах:

  • Чтобы найти локальный файл AchievementDefinition.cs, перейдите в Активы > Блоки > Достижения > Сценарии > Время выполнения >
  • Чтобы найти файл Cloud Code:
    1. В течение Активы папка, щелкните правой кнопкой CloudCode.
    2. Выберите Просмотр в Explorer на Windows или Просмотр в Finder на macOS.
    3. Перейти к 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
}
]

Добавить достижения префаб в другую сцену

Чтобы использовать строительный блок достижений в новой сцене:

  1. Разверните Файл конфигурации достижений.
  2. Перейти к Активы > Блоки > Достижения > Префабы.
  3. Выберите AchievementsPrefab, чтобы открыть его.

Любые изменения, внесенные в Achievements.ach, влияют на AchievementsPrefab в режиме игры. Чтобы узнать, как изменить Achievements.ach, см. Настройка строительного блока достижений.

Примечание: Чтобы создать новый файл конфигурации достижений, перейдите к Создать > Блоки > Конфигурация достижений.

Настройка строительного блока достижений

Вы можете настроить строительный блок достижений следующим образом:

  • Измените файл конфигурации достижений.
  • Измените Достижения префаб.
  • Настройка политики управления доступом.
  • Изменение данных о достижениях.

Изменение файла конфигурации

Файл Achievements.ach является типом файла Удаленная конфигурация (.rc), который отображает свойства конфигурации достижений в окне Inspector. Файл Achievements.ach должен соответствовать данным, определенным в файле AchievementDefinition. Дополнительные сведения см. в разделе Изменение данных достижений.

Чтобы изменить описание или внешний вид каждого достижения:

  1. В окне Project перейдите в Активы > Блоки > Достижения > Развертывание > Achievements.ach.
  2. Выберите Achievements.ach для отображения его свойств в Inspector.
  3. Чтобы применить изменения, разверните Achievements.ach в текущую среду.

Изменить достижения префаб

Чтобы внести изменения в Достижения префаб:

  1. Перейдите в окно Project.
  2. Перейти к Активы > Блоки > Достижения > Префабы.
  3. Выберите AchievementsPrefab, чтобы просмотреть его свойства в Inspector.

Вы также можете включить Режим разработчика, чтобы изменить прогресс постепенных достижений в представлении Scene.

Следующие классы управляют данными, отображаемыми Achievements.ach:

  • AchievementAsset: Скриптовый объект в проекте.
  • AchievementFile: Определяет, как отображается содержимое Achievements.ach.
  • AchievementAssetImporter: класс пользовательского импортёра, включающий пользовательский инспектор.
  • AchievementAssetInspector: Сам таможенный инспектор.

Настройка политики управления доступом

Клиент достижений отправляет оценки в службу достижений. В блок входят следующие клиенты:

  • Местный персонал (LocalAchievementsClient): Отправляет результаты непосредственно в Cloud Save без проверки. Вы можете использовать политику Access Control для предотвращения обмана.
  • Доверенные (TrustedAchievementsClient): призывает Облачный код C# модуль безопасно отправлять баллы.

Чтобы изменить клиента в тестовой сцене:

  1. Откройте Сцена теста достижений.
  2. В окне Hierarchy выберите AchievementsPreview GameObject.
  3. В Inspector включите Использовать доверенный клиент.

Данные о достижениях

Файлы AchievementDefinition определяют свойства достижений, используемые в окне Achievements.ach Inspector. Чтобы узнать больше о файле Achievements.ach, см. Изменение файла конфигурации.

Места:

  • Локальный: Активы > Блоки > Достижения > Сценарии > Время выполнения > AchievementDefinition.cs
  • Код облака: Активы > Блоки > Достижения > CloudCode~ > Project > Достижение > AchievementDefinition.cs

Чтобы изменить данные в этом файле:

  • Обновите файл AchievementDefinition.cs в каждом расположении, чтобы их содержимое было точно таким же.
  • Разверните оба файла в окне Развертывание. Дополнительные сведения см. в разделе Развертывание файла конфигурации.

Устранение неполадок

Если оценки не видны и появляется предупреждение, это может быть связано с тем, что файл AchievementsAccessControl.ac запрещает доступ к записи для локального клиента. Чтобы исправить эту проблему:

  1. Перейдите в Услуги > Развертывание.
  2. Щелкните правой кнопкой мыши файл AchievementsAccessControl.ac.
  3. Выберите Удалить удаленный.

Дополнительные ресурсы

  • Авторитет сервера
  • Развертывание