Mengintegrasikan Google Play Game PC SDK dengan Unity

Panduan ini memberikan petunjuk langkah demi langkah untuk mengintegrasikan SDK PC Google Play Game ke dalam project Unity Anda.

Langkah 1: Download SDK

Download Paket Unity versi terbaru menggunakan link download.

Download: Play Game PC Unity SDK

Langkah 2: Impor paket

SDK didistribusikan sebagai file tar yang kompatibel dengan Unity Package Manager (UPM). Untuk mengetahui informasi selengkapnya, lihat Menginstal paket UPM dari file tar lokal

Langkah 3: Konfigurasi Setelan Build

Untuk memverifikasi bahwa library native dimuat dengan benar, Anda harus mengonfigurasi project untuk menggunakan backend skrip IL2CPP dan menargetkan arsitektur yang benar.

  1. Buat profil build dengan Windows sebagai platform.

  2. Pilih setelan platform sebagai Windows. Untuk arsitektur, gunakan opsi:

    • Intel 64-bit (Direkomendasikan)
    • Intel 32-bit

    Catatan: Platform Google Play Game di PC berjalan di lingkungan 64-bit. Anda dapat membuat game sebagai 32-bit (x86) atau 64-bit (x64).

  3. Setel Scripting Backend ke IL2CPP. Untuk mengetahui informasi selengkapnya, lihat Membangun project dengan IL2CPP.

    • Setel Api Compatibility Level ke .NET Standard 2.0 (atau .NET Framework).

Langkah 4: Buat manifes aplikasi

Sebelum dapat menggunakan SDK di game, Anda harus mengaitkan file yang dapat dieksekusi game dengan nama paket Play yang Anda klaim di Konsol Play. Anda melakukannya dengan menambahkan file manifest.xml di direktori yang sama dengan file yang dapat dieksekusi game Anda.

Catatan: Ini adalah langkah manual yang harus dilakukan.

  1. Untuk membuat file yang dapat dieksekusi game, pilih File > Build and Run atau klik Ctrl+B.
  2. Buka editor teks dan buat file baru bernama manifest.xml.
  3. Salin dan tempel kode XML berikut ke dalam file:

    <?xml version="1.0" encoding="utf-8"?>
    <?Manifest version="1">
       <?Application>
         <?PackageName>com.example.package<?/PackageName>
       <?/Application>
    <?/Manifest>

  4. Simpan file sebagai manifest.xml.

  5. Pindahkan file ini ke folder yang sama dengan file yang dapat dieksekusi game yang Anda buat.

    Contoh: Jika game Anda berada di Builds/MyGame.exe, manifes harus berada di Builds/manifest.xml.

Langkah 5: Lakukan inisialisasi SDK

Anda harus melakukan inisialisasi SDK sebelum mengakses fitur apa pun, seperti Penagihan atau Integritas. Gunakan PlayPcSdkFactory untuk membuat handler inisialisasi dan memulai koneksi.

Buat skrip C# baru, misalnya, SdkInitialization.cs, lalu tambahkan kode berikut:

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("Google Play PC 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("<color=green>Google Play PC SDK Initialized Successfully!</color>");
                // You can now create BillingClient or IntegrityClient instances
            }
            else
            {
                Debug.LogError($"<color=red>Initialization Failed!</color>");
                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);
        }
    }
}

Lampirkan skrip ini ke GameObject di adegan pertama Anda. Saat Anda menjalankan game, periksa Konsol untuk melihat pesan "SDK Initialized Successfully!".