Обеспечьте беспрепятственный вход пользователей в вашу игру, продолжая использовать собственную систему учетных записей. С помощью API Play Games Services Recall вы можете связать внутриигровые учетные записи с учетной записью Google Play Games Services. Затем, когда пользователь играет в вашу игру на разных устройствах (или на одном и том же устройстве после переустановки игры), вы запрашиваете связанную внутриигровую учетную запись и оптимизируете процесс входа в систему.
Если вы интегрировались с API функции запоминания игр Android , то эти API должны показаться вам знакомыми. Любые серверные интеграции с сервисами Play Games Services Recall можно повторно использовать в играх для ПК, поскольку они одинаковы как для Android, так и для ПК.
Пространство имен: PlayPcSdkManaged.Recall
Класс клиента: RecallClient
Предварительные требования
Ознакомьтесь с обзором API вызова сервисов Play Games .
Завершите настройку сервисов Google Play Games в Play Console.
Добавьте идентификатор вашего проекта Play Games Services в манифест.
После завершения настройки Play Games Services в Play Console ваша игра получит связанный с ней идентификатор проекта Play Games Services. Используя этот идентификатор проекта, который можно найти на странице конфигурации Play Games Services в Play Console, обновите manifest.xml вашей игры.
Пример содержимого файла manifest.xml :
<?xml version="1.0" encoding="utf-8"?> <?Manifest version="1"> <?Application> <?PackageName>com.example.package<?/PackageName> <?PlayGamesServices> <?ProjectId>123456789<?/ProjectId> <?/PlayGamesServices> <?/Application> <?/Manifest>
Примечание: Если вы хотите использовать PC SDK при разработке в редакторе Unity без необходимости цифровой подписи исполняемого файла игры или запуска её из Google Play Games, см. руководство по настройке режима разработчика .
Создайте клиента
Всегда используйте фабрику для создания объекта RecallClient . Это гарантирует автоматическую регистрацию безопасных для Unity коллбэков.
using UnityEngine; using System; using System.Threading.Tasks; // Required SDK Namespaces using PlayPcSdkManaged.Recall; using PlayPcSdkManaged.Unity; public class RecallManager : MonoBehaviour { private RecallClient _recallClient; public void SetupRecall() { try { // Creates the client with the required UnityRecallCallbacksHandler _recallClient = PlayPcSdkFactory.CreateRecallClient(); Debug.Log("Recall Client created successfully."); } catch (Exception ex) { Debug.LogError($"Failed to create Recall Client: {ex.Message}"); } } private void OnDestroy() { // Always dispose of the client to clean up native C++ resources _recallClient?.Dispose(); } }
Запросить доступ для отзыва
Когда в вашей игре обрабатывается процесс входа в систему, например, добавление внутриигровой учетной записи, запросите отзыв доступа с помощью RequestRecallAccessAsync .
Этот вызов возвращает идентификатор сессии , который используется вашим бэкэндом для выполнения серверных запросов к Google с целью привязки и отвязки ваших внутриигровых учетных записей от пользователей Play Games Services.
public async Task RequestRecallAccessAsync() { try { Debug.Log("Requesting Recall access..."); // Async call to retrieve the session ID var result = await _recallClient.RequestRecallAccessAsync(); if (result.IsOk) { // On success, access the RecallSessionId var sessionId = result.Value.RecallSessionId; Debug.Log($"Recall Access Granted! Session ID: {sessionId}"); // Pass 'sessionId' to your backend server to process account linking } else { // Handle expected API errors (e.g., Error) Debug.LogError($"Request Failed: {result.Code} - {result.ErrorMessage}"); } } catch (Exception ex) { Debug.LogException(ex); } }
Обработайте идентификатор сессии «Отзыв».
После того как ваша игра получит идентификатор сессии Recall и передаст его на ваш сервер, используйте серверные REST API Play Games для:
- Запрос существующих связанных внутриигровых учетных записей с использованием
recall.retrieveTokens - Добавляйте или обновляйте связанные внутриигровые учетные записи с помощью
recall.linkPersona - Удалите связанные внутриигровые учетные записи с помощью
recall.unlinkPersona
Более подробное руководство по интеграции на стороне сервера см. в документации по использованию API Recall на вашем игровом сервере .