Phần này cung cấp hướng dẫn chi tiết về cách triển khai cho các mô-đun cốt lõi được SDK Google Play Games trên máy tính cho Unity hỗ trợ:
Khởi chạy
Bạn phải khởi chạy SDK trước khi cố gắng sử dụng bất kỳ tính năng nào khác. Quá trình này thiết lập kết nối giữa trò chơi Unity và thời gian chạy Google Play Games trên máy tính.
Không gian tên: PlayPcSdkManaged.Initialization
Điểm truy cập: GooglePlayInitialization
Triển khai
Bạn phải truy xuất trình xử lý gọi lại dành riêng cho Unity từ PlayPcSdkFactory và truyền trình xử lý này vào phương thức khởi chạy. Để đảm bảo tính ổn định, bạn nên gói logic khởi chạy trong một trình chạy không đồng bộ an toàn để xử lý các trường hợp ngoại lệ tiềm ẩn và ngăn việc khởi chạy hai lầ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); } } }
Tài liệu tham khảo về cách xử lý lỗi
SDK sử dụng đối tượng Result cho tất cả kết quả dự kiến của API. Bạn nên kiểm tra Result.Code để xử lý các trường hợp như lỗi mạng hoặc việc người dùng huỷ.
Lưu ý: Mặc dù các API của SDK không đưa ra ngoại lệ đối với lỗi logic,
bạn vẫn nên gói các phương thức cấp cao nhất async trong một khối try-catch. Điều này đảm bảo rằng các lỗi thời gian chạy không mong muốn (chẳng hạn như tham chiếu rỗng trong
mã của riêng bạn hoặc lỗi lập lịch tác vụ) được ghi lại chính xác trong bảng điều khiển Unity.