Unity için Google Play Games'i kurma ve oturum açma

Bu doküman, Unity projenizi Unity için Google Play Games eklentisini kullanacak şekilde ayarlama konusunda size yol gösterir. Eklentiyi nasıl yükleyeceğinizi ve Unity projenizi nasıl yapılandıracağınızı öğrenirsiniz. Dokümanda, oturum açma hizmetinin nasıl doğrulanacağı da ele alınmaktadır.

Başlamadan önce

Yazılım koşullarını inceleyin. Play Console'u kurun ve Unity Hub'ı yükleyin.

Eklenti Yükleme

Unity için Google Play Games eklentisini indirip yüklemek üzere Unity Hub'da aşağıdaki adımları uygulayın:

  1. GitHub kod deposunu indirin.

  2. current-build dizininde unitypackage dosyasını bulun. Bu dosya, eklentiyi temsil eder. Örneğin, aşağıdakine benzer olmalıdır:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Unity projesi oluşturma

Oynatıcı ayarlarında Unity projesi oluşturmak için aşağıdaki adımları uygulayın:

  1. Oyun projenizi açın.

  2. unitypackage dosyasını projenizin öğelerine aktarmak için Unity Hub'da Öğeler > Paket İçe Aktar > Özel Paket'i tıklayın.

  3. Mevcut derleme platformunuzun Android olarak ayarlandığından emin olun.

    1. Ana menüde Dosya > Derleme Ayarları'nı tıklayın.

    2. Android'i seçin ve Platform Değiştir'i tıklayın.

    3. Pencere > Google Play Games bölümünde yeni bir menü öğesi olmalıdır. Öğe yoksa Öğeler > Yenile'yi tıklayarak öğeleri yenileyin ve ardından derleme platformunu tekrar ayarlamayı deneyin.

  4. Unity Hub'da Dosya > Derleme Ayarları > Oynatıcı Ayarları > Diğer Ayarlar'ı tıklayın.

  5. Hedef API düzeyi kutusunda bir sürüm seçin.

  6. Arka uç komut dosyası kutusuna IL2CPP yazın.

  7. Hedef mimariler kutusunda bir değer seçin.

  8. package_name paket adını not edin.Bu bilgileri daha sonra kullanabilirsiniz.

Unity projenizdeki oynatıcı ayarları
Unity projenizdeki oyuncu ayarları.

Yeni bir anahtar deposu oluşturma

Kimlik bilgilerinizi doğrulamak için bir anahtara ihtiyacınız vardır. Şu adımları uygulayın:

  1. Unity Hub'da Dosya > Derleme ayarları > Oynatıcı ayarları'nı tıklayın.
  2. Yayınlama ayarları bölümünde Anahtar mağazası yöneticisi'ni tıklayın.
    1. Anahtar mağazası yöneticisi penceresinde Anahtar mağazası > Yeni oluştur > Herhangi bir yer'i tıklayın.
    2. Bir klasör seçin ve anahtar arşivi için bir ad girin.
    3. Şifre kutusuna bir şifre girip onaylayın.
    4. Anahtar ekle'yi tıklayın.

Klasör adını not edin. Google Cloud'da kimlik bilgisi oluşturmak için bu adı kullanabilirsiniz.

Play Console'dan Android kaynaklarını kopyalama

Play Console'da oluşturduğunuz her başarı, skor tablosu ve etkinlik, Unity projenizi ayarlarken kullanacağınız bir Android kaynağı içerir.

Oyununuzun Android kaynaklarını almak için aşağıdaki adımları uygulayın:

  1. Google Play Console'da oyunu açın.

  2. Play Games Hizmetleri - Yapılandırma sayfasında (Büyüme > Play Games Hizmetleri > Kurulum ve yönetim > Yapılandırma) Kaynak al'ı tıklayın.

  3. Kaynaklar penceresinde Android(XML) sekmesini tıklayın.

  4. Android kaynakları (AndroidManifest.xml) içeriğini seçip kopyalayın.

Android kaynaklarını Unity projenize ekleme

Unity projenize aşağıdaki Android kaynaklarını ekleyin:

  1. Unity Hub'da Pencere > Google Play Games > Kurulum > Android Kurulumu'nu tıklayın.

    • Sabit değerlerin kaydedileceği dizin alanına sabit değerler dosyasının klasör adını girin.
    • Sabitler sınıf adı alanına, oluşturulacak C# sınıfının adını, ad alanını da ekleyerek girin.

      Örneğin, C# sınıfı id.cs ise ve Öğeler > projem > komut dosyaları > kimlik.cs altındaysa. Sabitler sınıf adı myproject.scripts.id olabilir.

    • Kaynak tanımı alanına, Google Play Console'dan kopyaladığınız Android kaynak verilerini (AndroidManifest.xml dosyası) yapıştırın.

    • İsteğe bağlı: İstemci Kimliği alanına, bağlı web uygulamasının istemci kimliğini girin.

      Oyununuzun istemci kimliğini Google Cloud'dan almak için İstemci kimlikleri oluşturma başlıklı makaleyi inceleyin.

      Bu yalnızca oyununuz için web tabanlı bir arka ucunuz varsa ve arka uç sunucunun erişim jetonuyla takas etmesi için bir sunucu kimlik doğrulama koduna ihtiyacınız varsa veya oyuncunun oyun dışı API çağrıları yapması için bir kimlik jetonuna ihtiyacınız varsa gereklidir.

    • Kurulum'u tıklayın. Bu işlem, oyununuzu istemci kimliğiyle yapılandırır ve Android kaynaklarınızın her biri için sabitler içeren bir C# sınıfı oluşturur.

  2. Unity Hub'da Pencere > Google Play Games > Kurulum > Yakındaki Bağlantılar Kurulumu'nu tıklayın.

    • Yakındaki bağlantı hizmeti kimliği alanına package_name girin.

      Unity projesini oluştururken kullandığınız package_name değerini kullanın.

    • Kurulum'u tıklayın.

Sosyal medya platformu seçme

Google Play Games Hizmetleri eklentisi, Unity'nin sosyal arayüzünü uygular. Bu sayede, diğer platformlarla entegrasyon sırasında bu arayüzü zaten kullanan oyunlarla uyumluluk sağlanır. Ancak bazı özellikler Play Games'e özgüdür ve Unity tarafından sağlanan standart sosyal arayüzün uzantıları olarak sunulur.

Standart API çağrılarına, ISocialPlatform arayüzüne referans veren Social.Active nesnesi üzerinden erişilebilir. Standart olmayan Google Play Oyun Hizmetleri uzantılarına, Social.Active nesnesini PlayGamesPlatform sınıfına yayınlayarak erişilebilir. Bu sınıfta ek yöntemler kullanılabilir.

Varsayılan sosyal medya platformunu geçersiz kılmaksızın eklentiyi kullanma

PlayGamesPlatform.Activate çağrısı yaptığınızda Google Play Oyun Hizmetleri, varsayılan sosyal platform uygulamanız olur. Bu, Social ve Social.Active'deki yöntemlere yönelik statik çağrıların Google Play Oyun Hizmetleri eklentisi tarafından gerçekleştirileceği anlamına gelir. Bu, eklentiyi kullanan çoğu oyunda geçerli bir davranıştır.

Ancak, herhangi bir nedenle varsayılan uygulamaya erişilebilir olmasını istiyorsanız (örneğin, farklı bir sosyal platforma başarı ve liderlik tabloları göndermek için kullanmak istiyorsanız) varsayılan uygulamayı geçersiz kılmadan Google Play Games Hizmetleri eklentisini kullanabilirsiniz. Bunu yapmak için:

  1. PlayGamesPlatform.Activate numarayı arama
  2. Xyz, Social sınıfında çağırmanız gereken bir yöntemin adıysa Social.Xyz'yi çağırmayın. Bunun yerine PlayGamesPlatform.Instance.Xyz numaralı telefonu arayın.
  3. Google Play Games Hizmetleri ile etkileşimde bulunurken Social.Active kullanmayın. Bunun yerine PlayGamesPlatform.Instance kullanın.

Böylece puanları ve başarıları iki veya daha fazla sosyal platforma aynı anda gönderebilirsiniz:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

Oturum açma hizmetini doğrulama

Oyununuz açıldığında Oturum açma hizmeti kullanılarak Play Oyun Hizmetleri'ne otomatik olarak bağlanmaya çalışılır. Bağlantı başarılı olursa oyununuzda oturum açma istemi gösterilir ve Unity için Google Play Games Hizmetleri eklentisi kullanıma hazır olur.

Cihazında hiç Google Play Games Hizmetleri kullanmamış olan kullanıcılar, Play Games hesabı oluşturmak için otomatik olarak tek seferlik kurulum ekranına yönlendirilir.

Komut dosyanızın Start yönteminde, otomatik oturum açma denemesinin sonucunu dinleyin, kimlik doğrulama durumunu alın ve kullanıcı oturum açmadıysa Play Games Hizmetleri özelliklerini devre dışı bırakın.

Unity eklentisi sürümü v11'ten eskiyse oturum açma özelliğini kullanamazsınız.

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

Sonuç kodu, oturum açma hatasının nedenini belirlemek için kullanabileceğiniz bir enum'dur.

Unity'nin Sosyal platformunu kullanmayı tercih ediyorsanız alternatif olarak aşağıdaki kodu kullanabilirsiniz:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

Authenticate'ten başarılı bir değer döndürülene kadar Google Play Games Hizmetleri API çağrısı yapamazsınız. Bu nedenle, kimlik doğrulama tamamlanana kadar kullanıcıların oyunu oynamaya başlayamamasını sağlamak için oyunlarda geri çağırma çağrısı yapılana kadar bekleme ekranı gösterilmesini öneririz.

konuyu ziyaret edin.

Play Uygulama İmzalama özelliğini kullanma

Google, Play Uygulama İmzalama'yı kullanarak uygulamanızın imzalama anahtarını yönetir ve korur. Android App Bundle(AAB) dosyalarının optimize edilmiş dağıtım sürümlerini imzalamak için Play Uygulama İmzalama'yı kullanabilirsiniz. Play Uygulama İmzalama, uygulama imzalama anahtarınızı Google'ın güvenli altyapısında saklar. Play Uygulama İmzalama'yı kullanmak için öncelikle Unity Hub'dan bir AAB dosyası oluşturup indirmeniz gerekir. Ardından AAB dosyasını Play Console'a yükleyip dahili test sürümü oluşturabilirsiniz.

AAB dosyası oluşturma

Unity Hub'da AAB dosyası oluşturmak için aşağıdaki adımları uygulayın:

  1. Unity Hub'da Dosya > Derleme ayarları'nı tıklayın.
  2. Uygulama Paketi Oluştur ( Google Play )'u seçin.

    Daha fazla bilgi için Android Derleme Ayarları referansı başlıklı makaleyi inceleyin.

  3. Oluştur'u tıklayın.

  4. AAB dosyasını Unity Hub'dan indirin.

Dahili test sürümü oluşturma

Play Console'da dahili test sürümü oluşturmak ve test kullanıcıları eklemek için aşağıdaki adımları uygulayın:

  1. Google Play Console'da bir oyun seçin.
  2. Test ve sürüm sayfasına (Test > Dahili test) gidin.
  3. Yükle'yi tıklayın ve AAB dosyasını seçin.
  4. Sürüm ayrıntıları alanına bir ad girin.
  5. İleri'yi tıklayın ve sürüm ayrıntılarını inceleyin.
  6. Kaydet ve yayınla'yı tıklayın.
  7. 100'e kadar test kullanıcısı eklemek için Test kullanıcıları sekmesinde E-posta listesi oluştur'u tıklayın.

    Daha fazla bilgi için Dahili test: 100 kişiye kadar test kullanıcısını yönetme başlıklı makaleyi inceleyin.

  8. Geri bildirim sağlamak için Geri bildirim URL'si veya e-posta adresi alanına bir geri bildirim URL'si veya e-posta adresi girin.

  9. Kaydet'i tıklayın.

Uygulama imzalama kimlik bilgilerinizi doğrulama

  1. Google Play Console'da bir oyun seçin.
  2. Test ve yayınla sayfasına (Kurulum > Uygulama imzalama) gidin.
  3. Uygulama imzalama kimlik bilgilerinizi doğrulayın.

Projeyi derleyip çalıştırma

Bu noktada oyun projesini derleyip çalıştırabilirsiniz. Oyun başladığında otomatik oturum açma girişimini görürsünüz.

USB hata ayıklama özelliğinin etkinleştirildiği fiziksel bir Android cihaza veya geliştirilen projeyi çalıştırabilecek bir emülatöre ihtiyacınız vardır.

Sunucu kimlik doğrulama kodlarını alma

Mevcut oynatıcı adına arka uç web sunucusunda Google API'lerine erişmek için istemci uygulamasından bir kimlik doğrulama kodu almanız ve bunu web sunucu uygulamanıza iletmeniz gerekir. Ardından kod, çeşitli API'lere çağrı yapmak için bir erişim jetonuyla değiştirilebilir. İş akışı hakkında bilgi edinmek için web için Google ile oturum açma başlıklı makaleyi inceleyin.

Sunucu tarafı erişim kodunu almak için:

  1. Oyununuza bağlı web uygulamasının web istemci kimliğini Play Console'da yapılandırın.

  2. Oyuncu kimliğini doğruladıktan sonra sunucu tarafı erişim kodunu almak için PlayGamesPlatform.Instance.RequestServerSideAccess'ü arayın.

  3. Bu kodu sunucu uygulamanıza iletin.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

Özellik ayarlama ve ekleme