Google Play Games PC SDK'sını Unity ile entegre etme

Bu kılavuzda, Google Play Games PC SDK'sını Unity projenize entegre etme ile ilgili adım adım talimatlar verilmektedir.

1. adım: SDK'yı indirin

İndirme bağlantısını kullanarak Unity Paketinin en son sürümünü indirin.

İndirin: Play Games PC Unity SDK'sı

2. adım: Paketi içe aktarın

SDK, Unity Package Manager (UPM) ile uyumlu bir tar dosyası olarak dağıtılır. Daha fazla bilgi için Yerel bir tar dosyasından UPM paketi yükleme başlıklı makaleyi inceleyin.

3. adım: Derleme ayarlarını yapılandırın

Yerel kitaplıkların doğru şekilde yüklendiğini doğrulamak için projenizi IL2CPP komut dosyası oluşturma arka ucunu kullanacak ve doğru mimariyi hedefleyecek şekilde yapılandırmanız gerekir.

  1. Platform olarak Windows'u kullanarak derleme profili oluşturun.

  2. Platform ayarlarını Windows olarak seçin. Mimari için şu seçenekleri kullanın:

    • Intel 64 bit (Önerilen)
    • Intel 32 bit

    Not: PC Üzerinde Google Play Games platformu 64 bitlik bir ortamda çalışır. Oyununuzu 32 bit (x86) veya 64 bit (x64) olarak oluşturabilirsiniz.

  3. Scripting Backend'i IL2CPP olarak ayarlayın. Daha fazla bilgi için IL2CPP ile proje oluşturma başlıklı makaleyi inceleyin.

    • Api Compatibility Level.NET Standard 2.0 (veya .NET Framework) olarak ayarlayın.

4. adım: Uygulama manifestini oluşturun

SDK'yı oyununuzda kullanabilmek için oyununuzun yürütülebilir dosyasını Play Console'da hak talebinde bulunduğunuz Play paket adıyla ilişkilendirmeniz gerekir. Bunu, oyununuzun yürütülebilir dosyasıyla aynı dizine bir manifest.xml dosyası ekleyerek yaparsınız.

Not: Bu, yapılması gereken manuel bir adımdır.

  1. Oyununuzun yürütülebilir dosyasını oluşturmak için File > Build and Run'ı (Dosya > Oluştur ve Çalıştır) seçin veya Ctrl+B simgesini tıklayın.
  2. Bir metin düzenleyici açın ve manifest.xml adlı yeni bir dosya oluşturun.
  3. Aşağıdaki XML kodunu kopyalayıp dosyaya yapıştırın:

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

  4. Dosyayı manifest.xml olarak kaydedin.

  5. Bu dosyayı, oluşturduğunuz oyunun yürütülebilir dosyasıyla aynı klasöre taşıyın.

    Örnek: Oyununuz Builds/MyGame.exe adresindeyse manifest Builds/manifest.xml adresinde olmalıdır.

5. adım: SDK'yı başlatın

Faturalandırma veya bütünlük gibi özelliklere erişmeden önce SDK'yı başlatmanız gerekir. Başlatma işleyicisini oluşturmak ve bağlantıyı başlatmak için PlayPcSdkFactory öğesini kullanın.

Yeni bir C# komut dosyası oluşturun (örneğin, SdkInitialization.cs) ve aşağıdaki kodu ekleyin:

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);
        }
    }
}

Bu komut dosyasını ilk sahnenizdeki bir GameObject'e ekleyin. Oyunu çalıştırdığınızda Console'da "SDK Initialized Successfully!" (SDK başarıyla başlatıldı) mesajını kontrol edin.