En esta sección, se proporcionan guías de implementación detalladas para los módulos principales compatibles con el SDK de Google Play Juegos para PC de Unity:
Inicialización
El SDK debe inicializarse antes de que intentes usar cualquier otra función. Este proceso establece la conexión entre tu juego de Unity y el tiempo de ejecución de Google Play Juegos para PC.
Espacio de nombres: PlayPcSdkManaged.Initialization
Punto de entrada: GooglePlayInitialization
Implementación
Debes recuperar el controlador de devolución de llamada específico de Unity desde PlayPcSdkFactory y pasarlo al método de inicialización. Para garantizar la estabilidad, te recomendamos que envuelvas la lógica de inicialización en un ejecutor asíncrono seguro para controlar las posibles excepciones y evitar la doble inicialización.
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); } } }
Referencia del control de errores
El SDK usa un objeto Result para todos los resultados esperados de la API. Debes verificar Result.Code para controlar situaciones como errores de red o cancelaciones del usuario.
Nota: Si bien las APIs del SDK no arrojan excepciones por errores de lógica, te recomendamos que envuelvas tus métodos async de nivel superior en un bloque try-catch. Esto garantiza que los errores de tiempo de ejecución inesperados (como referencias nulas en tu propio código o fallas en la programación de tareas) se registren correctamente en la consola de Unity.