Ta sekcja zawiera szczegółowe przewodniki po implementacji podstawowych modułów obsługiwanych przez pakiet SDK do Gier Play na PC w Unity:
Inicjowanie
Przed użyciem innych funkcji musisz zainicjować pakiet SDK. Ten proces nawiązuje połączenie między grą w Unity a środowiskiem wykonawczym Gier Google Play na PC.
Przestrzeń nazw: PlayPcSdkManaged.Initialization
Punkt wejścia: GooglePlayInitialization
Implementacja
Musisz pobrać z PlayPcSdkFactory moduł obsługi wywołania zwrotnego specyficzny dla Unity i przekazać go do metody inicjowania. Aby zapewnić stabilność, zalecamy umieszczenie logiki inicjowania w bezpiecznym asynchronicznym module wykonawczym, który będzie obsługiwać potencjalne wyjątki i zapobiegać podwójnej inicjalizacji.
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); } } }
Informacje o obsłudze błędów
Pakiet SDK używa obiektu Result w przypadku wszystkich oczekiwanych wyników interfejsu API. Sprawdź, czyResult.Code obsługujesz scenariusze takie jak błędy sieci lub anulowanie przez użytkownika.
Uwaga: interfejsy API pakietu SDK nie zgłaszają wyjątków w przypadku błędów logicznych, ale zalecamy umieszczenie metod najwyższego poziomu w bloku try-catch.async Dzięki temu nieoczekiwane błędy podczas działania (np. odwołania do wartości null w Twoim kodzie lub błędy planowania zadań) są prawidłowo rejestrowane w konsoli Unity.