В этом разделе описывается, как настроить проект Unity для использования плагина Google Play Games для Unity . В задачи входит настройка проекта, выбор социальной платформы и настройка входа игрока.
Прежде чем начать
В Google Play Console настройте Play Console для своей игры.
В консоли Google Play создайте достижение .
Установка плагина
Получите плагин, используя один из этих вариантов:
Клонируйте репозиторий GitHub в свою файловую систему.
Загрузите репозиторий GitHub в виде ZIP-файла, а затем распакуйте его.
Найдите файл
unitypackage
в каталогеcurrent-build
. Этот файл является плагином. Например, это должно выглядеть примерно так:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Откройте свой игровой проект в Unity.
Импортируйте файл
unitypackage
в ресурсы вашего проекта, щелкнув пункт меню «Активы» > «Импортировать пакет» > «Пользовательский пакет» .Убедитесь, что для вашей текущей платформы сборки установлено значение Android .
В главном меню выберите «Файл» > «Настройки сборки…» .
Выберите Android и нажмите «Переключить платформу» .
Должен появиться новый пункт меню «Окно» > «Google Play Игры» . Если это не так, обновите ресурсы, нажав «Ресурсы» > «Обновить» , а затем попробуйте снова настроить платформу сборки.
Получите ресурсы Android из Play Console.
Каждое достижение, таблица лидеров и событие, которое вы создаете в Play Console, включает в себя ресурс Android, который вы используете при настройке проекта Unity .
Получите ресурсы Android для своей игры.
В Play Console откройте проект Play Games Services для своей игры.
Откройте вкладку «Достижения» и нажмите « Получить ресурсы» .
В окне «Экспорт ресурсов» перейдите на вкладку Android .
Выберите и скопируйте содержимое XML.
Настройте свой проект Unity
Добавьте ресурсы Android в свой проект Unity.
В Unity нажмите ** Окно > Google Play Игры > Настройка... > Настройка Android **.
Заполните эти пункты в окнах настройки:
Каталог для сохранения констант : папка для файла констант.
Имя класса констант : имя создаваемого класса C#, включая пространство имен.
Определение ресурсов . Вставьте сюда данные ресурсов Android из Play Console.
Идентификатор веб-клиента : идентификатор клиента связанного веб-приложения. Это необходимо только в том случае, если у вас есть веб-сервер для вашей игры и вам нужен код авторизации сервера для обмена на токен доступа с внутреннего сервера, или если вам нужен токен идентификатора, чтобы игрок мог выполнять другие вызовы API, не связанные с игрой. .
Нажмите «Настроить» . Это настраивает вашу игру с использованием идентификатора клиента и создает класс C#, содержащий константы для каждого из ваших ресурсов Android.
Настройка Android
Настройте путь к установке Android SDK в Unity. Он находится в меню настроек, в разделе «Внешние инструменты» .
Чтобы настроить игру Unity для работы с Google Play Games на Android, сначала откройте менеджер Android SDK и убедитесь, что вы загрузили следующие пакеты. В зависимости от того, используете ли вы менеджер SDK из Android Studio или используете автономный менеджер SDK, названия компонентов могут быть разными. - Службы Google Play - Библиотека поддержки Android - Локальный репозиторий Maven для библиотек поддержки (также известный как репозиторий поддержки Android) - Репозиторий Google - Android 6.0 (API 23) (это не влияет на минимальную версию SDK).
Затем настройте имя пакета вашей игры. Для этого нажмите «Файл» > «Настройки сборки» , выберите платформу Android и нажмите «Настройки проигрывателя», чтобы открыть окно настроек проигрывателя Unity. В этом окне найдите параметр «Идентификатор пакета» в разделе «Другие настройки» . Введите там имя вашего пакета (например, com.example.my.awesome.game ).
Чтобы войти в игровые сервисы Play, вам необходимо подписать свой APK-файл. Убедитесь, что вы подписываете его правильным сертификатом, то есть тем, который соответствует отпечатку сертификата SHA1, который вы ввели в консоли разработчика во время настраивать.
Затем нажмите пункт меню «Окно | Google Play Игры | Настройка — Настройка Android» . Откроется экран настройки Android.
Введите имя класса констант. Это имя полного класса, который будет обновлен (или создан), и содержит идентификаторы игровых ресурсов. Формат имени: <namespace>.<classname>
. Например, AwesomeGame.GPGSIds
Вставьте данные определения ресурса. Это XML-данные из консоли разработчика Google Play, которые содержат идентификаторы ресурсов, а также идентификатор приложения для Android.
Эти данные можно найти в консоли разработчика Google Play, нажав «Получить ресурсы» на любой из страниц ресурсов (например, «Достижения» или «Таблицы лидеров»), а затем нажав «Android».
После вставки данных в текстовую область нажмите кнопку «Настроить» .
Примечание. Если вы используете веб-приложение или внутренний сервер со своей игрой, вы можете связать веб-приложение с игрой, чтобы получить возможность получения токена идентификатора игрока и/или адреса электронной почты. Для этого свяжите веб-приложение с игрой в консоли разработчика Google Play и введите идентификатор клиента веб-приложения в диалоговое окно настройки.
Дополнительные инструкции по сборке Android на Windows
Если вы используете Windows, вы должны убедиться, что Unity имеет доступ к вашей установке Java SDK. Для этого:
- Задайте для переменной среды JAVA_HOME путь установки Java SDK (например,
C:\Program Files\Java\jdk1.7.0_45
). - Добавьте папку
bin
Java SDK в переменную средыPATH
(например,C:\Program Files\Java\jdk1.7.0_45\bin
). - Перезагрузить.
Как редактировать переменные среды: В Windows 2000/XP/Vista/7 щелкните правой кнопкой мыши «Мой компьютер» , затем «Свойства» , затем перейдите в «Дополнительные свойства системы» (или «Свойства системы» , а затем щелкните вкладку «Дополнительно »), затем нажмите «Переменные среды» . В Windows 8 нажмите клавиши Windows + W и найдите переменные среды. Для получения дополнительной информации обратитесь к документации вашей версии Windows.
Запустить проект
Если вы работаете с образцом Smoketest , на этом этапе вы сможете собрать и запустить проект. Вы увидите попытку автоматического входа в систему, когда запустится Smoketest .
Чтобы выполнить сборку и запуск на Android, нажмите «Файл» > «Настройки сборки» , выберите платформу Android , затем «Переключиться на платформу» , затем «Сборка и запуск» .
Выберите социальную платформу
Плагин Google Play Games реализует социальный интерфейс Unity для совместимости с играми, которые уже используют этот интерфейс при интеграции с другими платформами. Однако некоторые функции являются уникальными для Play Games и предлагаются как расширения стандартного социального интерфейса Unity.
Доступ к стандартным вызовам API можно получить через объект Social.Active , который является ссылкой на интерфейс ISocialPlatform . Доступ к нестандартным расширениям Google Play Games можно получить, приведя объект Social.Active к классу PlayGamesPlatform , где доступны дополнительные методы.
Используйте плагин, не переопределяя социальную платформу по умолчанию.
Когда вы вызываете PlayGamesPlatform.Activate
, Google Play Games становится вашей реализацией социальной платформы по умолчанию, а это означает, что статические вызовы методов в Social
и Social.Active
будут выполняться плагином Google Play Games. Это желаемое поведение для большинства игр, использующих плагин.
Однако, если по какой-то причине вы хотите сохранить доступной реализацию по умолчанию (например, чтобы использовать ее для отправки достижений и таблиц лидеров на другую социальную платформу), вы можете использовать плагин Google Play Games, не переопределяя плагин по умолчанию. Для этого:
- Не вызывайте
PlayGamesPlatform.Activate
- Если
Xyz
— это имя метода, который вы хотите вызвать в классеSocial
, не вызывайтеSocial.Xyz
. Вместо этого вызовитеPlayGamesPlatform.Instance.Xyz
- Не используйте
Social.Active
при взаимодействии с Google Play Games. Вместо этого используйтеPlayGamesPlatform.Instance
.
Таким образом, вы даже можете отправлять результаты и достижения одновременно в две или более социальные платформы:
// Submit achievement to original default social platform
Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);
// Submit achievement to Google Play
PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
Проверка службы входа
При открытии игры автоматически предпринимается попытка подключения к игровым сервисам Play с использованием службы входа . Если подключение установлено успешно, ваша игра отобразит приглашение на вход и будет готова к использованию плагина Google Play Games для Unity.
Если пользователь никогда не использовал Google Play Games на своем устройстве, он автоматически перейдет через экран однократной настройки для создания учетной записи Play Games.
В методе Start
вашего скрипта прослушайте результат попытки автоматического входа, получите статус аутентификации и отключите функции игровых сервисов Play, если пользователь не вошел в систему.
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
internal void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login button
// to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
}
Код результата — это перечисление, которое можно использовать для определения причины неудачного входа.
Если вы предпочитаете использовать социальную платформу Unity, вы также можете использовать следующий код:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Вы не сможете выполнять вызовы API Google Play Games, пока не получите успешное возвращаемое значение от Authenticate
. В результате мы рекомендуем, чтобы игры отображали экран ожидания до тех пор, пока не будет вызван обратный вызов, чтобы гарантировать, что пользователи не смогут начать играть в игру до завершения аутентификации.
Получить коды аутентификации сервера
Чтобы получить доступ к API Google на внутреннем веб-сервере от имени текущего игрока, вам необходимо получить код аутентификации из клиентского приложения и передать его в приложение вашего веб-сервера. Затем код можно обменять на токен доступа для выполнения вызовов различных API. Информацию о рабочем процессе см. в разделе Вход в Google для веб-сайтов .
Чтобы получить код доступа на стороне сервера:
Настройте идентификатор веб-клиента веб-приложения, связанного с вашей игрой, в игровой консоли Play.
Вызовите
PlayGamesPlatform.Instance.RequestServerSideAccess
после аутентификации игрока, чтобы получить код доступа на стороне сервера.Передайте этот код вашему серверному приложению.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Настройте и добавьте функции
Включите функции игровых сервисов Play.
Добавьте функции в свою игру с помощью API игровых сервисов Play: