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

projesiyle ilgili tüm adımları (SDK indirme, başlatma ve derleme yapılandırması) kapsar. keywords_public: Google Play Games PC, Unity, SDK entegrasyonu, yerel PC, oyun geliştirme, IL2CPP, manifest, Play Games PC Unity SDK

Bu kılavuzda, Google Play Games PC SDK'yı Unity projenize entegre etme ile ilgili adım adım talimatlar verilmiştir.

1. adım: SDK'yı indirin

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

İndirme: 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 kullanabilmeniz 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 yapabilirsiniz.

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 konumundaysa manifest Builds/manifest.xml konumunda olmalıdır.

Not: Oyununuzun yürütülebilir dosyasını dijital olarak imzalamanıza veya Google Play Games'den başlatmanıza gerek kalmadan Unity Editor'da geliştirme yaparken PC SDK'sını kullanmak istiyorsanız. Ek manifest yapılandırma adımları için geliştirici modu kurulum kılavuzuna bakın.

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 (ör. 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 Konsol'da "SDK Başarıyla Başlatıldı!" mesajını kontrol edin.

6. adım: PC'nizdeki yerel oyunlar yüklendikten sonra otomatik oynatmayı etkinleştirme

PC Üzerinde Google Play Games (GPG), geliştiricilerin "otomatik oynatma" özelliğini etkinleştirmesine olanak tanır. Bu özellik, yükleme işlemi tamamlandıktan hemen sonra oyununuzu otomatik olarak başlatır. Bu özellik, oyuncuyu doğrudan oyuna yönlendirerek ve GPG ekosisteminde tam olarak kimliği doğrulanmış şekilde sorunsuz bir kullanıcı deneyimi sağlar.

İşleyiş şekli

Özelliği etkinleştirdiğinizde GPG, komut satırı bağımsız değişkenleri aracılığıyla üçüncü taraf (3P) yükleyici işleminize bir GPG oturum jetonu iletir. Yükleyiciniz daha sonra bu jetonu ayıklamaktan ve kimliği doğrulanmış bir bağlamda oyun yürütülebilir dosyasını başlatmak için kullanmaktan sorumludur.

Ön koşullar

Bu özelliği kullanmak için 3. taraf yükleyicinizin komut satırı bağımsız değişkenlerini işleyebilmesi gerekir.

Uygulama adımları

  1. Yayınlama yapılandırmasında otomatik oynatmayı etkinleştirme

    Bu özelliği etkinleştirmek için play_publishing_config.xml dosyanızdaki <installer> öğesine acceptsCommandLineArguments özelliğini ekleyin.

    Örnek manifest.xml içerikleri:

    <installer requiresElevation="true" acceptsCommandLineArguments="true">
      <path>path/to/installer.exe</path>
      <installation-path-registry-location>
        <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
        <value-name>InstallPath</value-name>
      </installation-path-registry-location>
    </installer>
    
    • Özellik: acceptsCommandLineArguments
    • Tür: Boolean
    • Varsayılan: false
    • Davranış: Doğru olarak ayarladığınızda GPG, yükleyicinizi yürütürken oturum jetonunu komut satırı bağımsız değişkenlerine ekler.
  2. Yükleyicinizde Oturum Jetonunu İşleme

    Yükleyiciniz GPG istemcisi tarafından başlatıldığında oturum jetonunu komut satırı bağımsız değişkeni olarak alır.

    • Bağımsız değişken biçimi: --g_session_token=<TOKEN>

    Yapmanız gerekenler:

    • Ayıklama: Yükleyiciniz, jeton dizesini almak için komut satırı bağımsız değişkenlerini ayrıştırmalıdır.
    • Yayma: Yükleme akışınızda ikincil bir başlatıcı veya oyun süreci başlatılıyorsa yükleyiciniz, oturum jetonunu SDK'yı kullanan son oyun sürecine güvenli bir şekilde iletmekle sorumludur.
    • Başlatma: Oyunun yürütülebilir dosyasını başlatmak için sağlanan oturum jetonunu kullanın. Bu, oyunun kimliği doğrulanmış bir GPG bağlamında çalışmasını sağlar. Aksi takdirde, InitializeSDK başarısız olur ve oynatıcınızın oyununuzu yeniden başlatması gerekir.
  3. Hata işleme ve yedekler

  • Jeton Alma: GPG herhangi bir nedenle oturum jetonu oluşturamaz veya iletemezse (ör. jeton oluşturma hatası) yükleme işlemi yine de devam eder. Ancak yükleyiciniz --g_session_token bağımsız değişkeni olmadan başlatılır.
  • Sağlamlık: Yükleyiciniz, oturum jetonunun olmadığı senaryoları işleyecek şekilde tasarlanmalıdır. Bu gibi durumlarda yükleyici standart bir yükleme işlemine devam etmelidir. InitializeSDK yine de başarısız olacağından otomatik oyun başlatmayı tetiklememelisiniz.
  • Yükleyici Hataları: Yükleyicinizin ve başlattığı oyun başlatma sırasının sağlamlığı ve hata işleme süreçlerinden siz sorumlusunuz. GPG, yükleyici başlatıldıktan sonra yükleyicide gerçekleşen işlemler üzerinde kontrol sahibi değildir.