Cette section fournit des guides d'implémentation détaillés pour les modules principaux compatibles avec le SDK Google Play Jeux pour PC pour Unity :
Initialisation
Le SDK doit être initialisé avant que vous tentiez d'utiliser d'autres fonctionnalités. Ce processus établit la connexion entre votre jeu Unity et le runtime Google Play Jeux sur PC.
Espace de noms : PlayPcSdkManaged.Initialization
Point d'entrée : GooglePlayInitialization
Mise en œuvre
Vous devez récupérer le gestionnaire de rappel spécifique à Unity à partir de PlayPcSdkFactory et le transmettre à la méthode d'initialisation. Pour assurer la stabilité, nous vous recommandons d'encapsuler la logique d'initialisation dans un exécuteur asynchrone sécurisé afin de gérer les exceptions potentielles et d'éviter la double initialisation.
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); } } }
Informations de référence sur la gestion des erreurs
Le SDK utilise un objet Result pour tous les résultats d'API attendus. Vous devez vérifier Result.Code pour gérer les scénarios tels que les erreurs réseau ou les annulations par l'utilisateur.
Remarque : Bien que les API du SDK lui-même ne génèrent pas d'exceptions pour les erreurs logiques, nous vous recommandons tout de même d'encapsuler vos méthodes async de niveau supérieur dans un bloc try-catch. Cela permet de s'assurer que les erreurs d'exécution inattendues (telles que les références nulles dans votre propre code ou les échecs de planification des tâches) sont correctement consignées dans la console Unity.