Esta seção fornece guias de implementação detalhados para os módulos principais compatíveis com o SDK do Google Play Games para PC no Unity:
Inicialização
O SDK precisa ser inicializado antes de você tentar usar qualquer outro recurso. Esse processo estabelece a conexão entre seu jogo do Unity e o tempo de execução do Google Play Games no PC.
Namespace:PlayPcSdkManaged.Initialization
Ponto de entrada:GooglePlayInitialization
Implementação
Você precisa extrair o gerenciador de callback específico do Unity do
PlayPcSdkFactory e transmiti-lo ao método de inicialização. Para garantir a
estabilidade, recomendamos encapsular a lógica de inicialização em um executor assíncrono seguro
para processar possíveis exceções e evitar a inicialização dupla.
using UnityEngine; using System; using System.Threading.Tasks; // Import the SDK namespaces using PlayPcSdkManaged.Initialization; using PlayPcSdkManaged.Unity; public class GooglePlayPCSDKInit : MonoBehaviour { // Prevent double-initialization if this script is reloaded private static bool _isInitialized = false; private void Start() { // Use the "Safe Runner" pattern to fire the async method _ = InitializeSdkAsync(); } private async Task InitializeSdkAsync() { if (_isInitialized) { Debug.LogWarning("SDK is already initialized. Skipping."); return; } try { Debug.Log("Initializing Google Play PC SDK..."); // 1. Get the Unity-specific initialization handler from the factory var initHandler = PlayPcSdkFactory.InitializationHandler; // 2. Call InitializeAsync to start the connection var result = await GooglePlayInitialization.InitializeAsync(initHandler); // 3. Check the result if (result.IsOk) { _isInitialized = true; Debug.Log("SDK Initialized Successfully! "); // You can now create BillingClient or IntegrityClient instances } else { Debug.LogError($"Initialization Failed! "); Debug.LogError($"Error Code: {result.Code}"); Debug.LogError($"Message: {result.ErrorMessage}"); } } catch (Exception ex) { // Catch unexpected crashes or task failures Debug.LogError($"Exception during initialization: {ex.Message}"); Debug.LogException(ex); } } }
Referência de tratamento de erros
O SDK usa um objeto Result para todos os resultados esperados da API. Verifique Result.Code para lidar com cenários como erros de rede ou cancelamentos de usuários.
Observação:embora as APIs do SDK não gerem exceções para erros de lógica, ainda recomendamos encapsular os métodos async de nível superior em um bloco try-catch. Isso garante que erros de execução inesperados (como referências nulas no
seu próprio código ou falhas no agendamento de tarefas) sejam registrados corretamente no console
do Unity.