Esta seção oferece guias de implementação detalhados para os módulos principais com suporte do SDK do Google Play Games para PC para Unity:
Inicialização
O SDK precisa ser inicializado antes de você tentar usar outros recursos. Esse processo estabelece a conexão entre o jogo do Unity e o Google Play Games no PC no ambiente de execução.
Namespace:PlayPcSdkManaged.Initialization
Ponto de entrada:GooglePlayInitialization
Implementação
Você precisa recuperar 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 processar 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 lógicos,
ainda recomendamos encapsular seus métodos async de nível superior em um bloco try-catch. Isso garante que erros de execução inesperados (como referências nulas em
seu próprio código ou falhas de agendamento de tarefas) sejam registrados corretamente no console do Unity.