Unity için Google Play Games eklentisini kullanmaya başlama

Bu konuda, Unity için Google Play Games eklentisini kullanmak üzere Unity projenizi nasıl ayarlayacağınız açıklanmaktadır. Görevler arasında projeyi kurmak, sosyal platform seçmek ve oyuncuların oturum açmasını sağlamak yer alır.

Başlamadan önce

Eklenti Yükleme

  1. Aşağıdaki seçeneklerden birini kullanarak eklentiyi edinin:

  2. current-build dizininde unitypackage dosyasını bulun. Bu dosya eklentidir. Örneğin, aşağıdaki gibi görünmelidir:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. Oyun projenizi Unity'de açın.

  4. Öğeler > Paketi İçe Aktar > Özel Paket menü öğesini tıklayarak unitypackage dosyasını proje öğelerine aktarın.

  5. Geçerli derleme platformunuzun Android'e ayarlandığından emin olun.

    1. Ana menüde Dosya > Derleme Ayarları... seçeneğini tıklayın.

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

    3. Pencere > Google Play Games altında yeni bir menü öğesi olacaktır. Yoksa Öğeler > Yenile'yi tıklayarak öğeleri yenileyin ve ardından derleme platformunu tekrar ayarlamayı deneyin.

Play Console'dan Android kaynakları edinin

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

  1. Oyununuz için Android kaynaklarını edinin.

    1. Play Console'da, oyununuz için Play Oyun Hizmetleri projesini açın.

    2. Başarılar sekmesini, ardından Kaynakları alın'ı tıklayın.

    3. Kaynakları dışa aktar penceresinde, Android sekmesini tıklayın.

    4. XML içeriğini seçin ve kopyalayın.

Unity projenizi oluşturma

  1. Android kaynaklarını Unity projenize ekleyin.

    1. Unity'de ** Pencere > Google Play Games > Kurulum...'u tıklayın. > Android Kurulumu **.

    2. Kurulum pencerelerindeki şu öğeleri tamamlayın:

    3. Sabit değerlerin kaydedileceği dizin: Sabit değerler dosyasının klasörü.

    4. Sabit sınıf adı: Ad alanı da dahil olmak üzere oluşturulacak C# sınıfının adı.

    5. Kaynak Tanımı: Play Console'daki Android kaynak verilerini buraya yapıştırın.

    6. Web istemcisi kimliği: Bağlantılı web uygulamasının istemci kimliğidir. Bu yalnızca oyununuz için web tabanlı bir arka ucunuz varsa ve arka uç sunucudan erişim jetonu almak için bir sunucu yetkilendirme koduna ihtiyacınız varsa veya oyuncunun oyun dışı başka API çağrıları yapması için kimlik jetonuna ihtiyacınız varsa gereklidir.

    7. 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 sabit değerler içeren bir C# sınıfı oluşturur.

Android Kurulumu

Unity'de Android SDK yüklemenizin yolunu belirleyin. Bu seçeneği, tercihler menüsünde, External Tools (Harici Araçlar) bölümünde bulunur.

Unity oyununuzu Android'de Google Play Games ile çalışacak şekilde yapılandırmak için önce Android SDK yöneticisini açın ve aşağıdaki paketleri indirdiğinizi doğrulayın. SDK yöneticisini Android Studio'dan mı yoksa bağımsız SDK yöneticisinden mi kullandığınıza bağlı olarak bileşenlerin adı farklı olabilir. - Google Play Hizmetleri - Android Destek Kitaplığı - Destek Kitaplıkları için yerel Maven deposu (Android Destek Deposu olarak da bilinir) - Google Kod Deposu - Android 6.0 (API 23) (bu, minimum SDK sürümünü etkilemez).

Sonra, oyununuzun paket adını yapılandırın. Bunu yapmak için File > Build Settings'i (Dosya > Derleme Ayarları) tıklayın, Android platformunu seçin ve Oynatıcı Ayarları'nı tıklayarak Unity'nin Oynatıcı Ayarları penceresini gösterin. Bu pencerede Diğer Ayarlar altındaki Paket Tanımlayıcısı ayarını bulun. Paket adınızı buraya girin (ör. com.example.my.awesome.game).

Play Oyun Hizmetleri'nde oturum açmak için APK dosyanızı imzalamanız, doğru sertifikayla, yani kurulum sırasında Play Console'a girdiğiniz SHA1 sertifikası parmak izine karşılık gelen sertifikayla imzaladığınızdan emin olmanız gerekir.

Sonra, Pencere |Google Play Games|Kurulum - Android kurulumu menü öğesini tıklayın. Android kurulum ekranı görüntülenir.

Sabitler sınıf adını girin. Bu, güncellenecek (veya oluşturulacak) oyun kaynaklarının kimliklerini içeren tam nitelikli sınıfın adıdır. Adın biçimi <namespace>.<classname> şeklindedir. Örneğin, AwesomeGame.GPGSIds

Kaynak tanımı verilerini yapıştırın. Bu, Android için Uygulama Kimliği'nin yanı sıra kaynak kimliklerini de içeren, Google Play Developer Console'daki XML verileridir.

Bu veriler, Google Play Geliştirici Konsolu'nda, kaynak sayfalarından herhangi birinde (ör. Başarılar veya Skor Tabloları) "Kaynakları al"ı ve ardından Android'i tıklayarak bulunur.

Verileri metin alanına yapıştırdıktan sonra Ayarla düğmesini tıklayın.

Not: Oyununuzla bir web uygulaması veya arka uç sunucusu kullanıyorsanız oyuncunun kimlik jetonunu ve/veya e-posta adresini almayı etkinleştirmek için web uygulamasını oyuna bağlayabilirsiniz. Bunu yapmak için Google Play Console'da bir web uygulamasını oyuna bağlayın ve kurulum iletişim kutusuna web uygulamasının istemci kimliğini girin.

Windows'da Android için uygulama geliştirmeyle ilgili ek talimatlar

Windows kullanıyorsanız Java SDK yüklemenize Unity tarafından erişilebildiğinden emin olmanız gerekir. Bunun için:

  1. JAVA_HOME ortam değişkenini Java SDK yükleme yolunuza (örneğin, C:\Program Files\Java\jdk1.7.0_45) ayarlayın.
  2. Java SDK'sının bin klasörünü PATH ortam değişkeninize ekleyin (ör. C:\Program Files\Java\jdk1.7.0_45\bin)
  3. Yeniden başlatın.

Ortam değişkenlerini düzenleme: Windows 2000/XP/Vista/7'de Bilgisayarım'ı, ardından Özellikler'i sağ tıklayın, Gelişmiş Sistem Özellikleri'ne gidin (veya Sistem Özellikleri'ni, ardından Gelişmiş sekmesini tıklayın), ardından Ortam Değişkenleri'ni tıklayın. Windows 8'de Windows Tuşu + W tuşlarına basın ve ortam değişkenleri araması yapın. Daha fazla bilgi için Windows sürümünüzle ilgili dokümanlara bakın.

Projeyi yürütme

Smoketest numunesiyle çalışıyorsanız bu noktada projeyi oluşturup yürütebilirsiniz. Smoketest başladığında otomatik oturum açma girişimini görürsünüz.

Android'de derlemek ve çalıştırmak için Dosya > Derleme Ayarları'nı tıklayın, Android platformunu, Platforma Geç'i, ardından Derleme ve Çalıştır'ı seçin.

Sosyal medya platformu seçin

Google Play Games eklentisi, diğer platformlarla entegrasyon sırasında bu arayüzü kullanan oyunlarla uyumluluk için Unity'nin sosyal arayüzünü uygular. Bununla birlikte, 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, bir ISocialPlatform arayüzüne referans olan Social.Active nesnesi üzerinden erişilebilir. Standart olmayan Google Play Games uzantılarına, Social.Active nesnesini, ek yöntemlerin bulunduğu PlayGamesPlatform sınıfına yayınlayarak erişebilirsiniz.

Eklentiyi, varsayılan sosyal medya platformunu geçersiz kılmadan kullanın

PlayGamesPlatform.Activate çağırdığınızda Google Play Games varsayılan sosyal platform uygulamanız olur. Bir başka deyişle, Social ve Social.Active içindeki yöntemlere yapılan statik çağrılar Google Play Games eklentisi tarafından yapılır. Eklentiyi kullanan çoğu oyun için istenen davranış budur.

Bununla birlikte, herhangi bir nedenle varsayılan uygulamanın erişilebilir kalmasını istiyorsanız (örneğin, başarıları ve skor tablolarını farklı bir sosyal platforma göndermek için bu varsayılan uygulamayı kullanmak isterseniz) Google Play Games eklentisini, varsayılan uygulamayı geçersiz kılmadan kullanabilirsiniz. Bunun için:

  1. PlayGamesPlatform.Activate numarasını arama
  2. Xyz, Social sınıfında çağırmak istediğiniz yöntemin adıysa Social.Xyz yöntemini çağırmayın. Bunun yerine PlayGamesPlatform.Instance.Xyz numaralı telefonu arayın
  3. Google Play Games ile etkileşimde bulunurken Social.Active uygulamasını kullanmayın. Bunun yerine PlayGamesPlatform.Instance politikasını kullanın.

Bu şekilde, skorları ve başarılarınızı aynı anda iki veya daha fazla sosyal platforma bile 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ğrulayın

Oyununuz açıldığında Oturum açma hizmeti kullanılarak Play Oyun Hizmetleri'ne bağlantı otomatik olarak bağlanmaya çalışılır. Bağlantı başarılı olursa oyununuz bir oturum açma istemi görüntüler ve Unity için Google Play Games eklentisini kullanmaya hazırdır.

Cihazında Google Play Games'i hiç 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 getirin ve kullanıcı oturum açmamışsa Play Games Hizmetleri özelliklerini devre dışı bırakın.

    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 enumdur.

Unity’nin Social platformunu kullanmayı tercih ederseniz alternatif olarak aşağıdaki kodu da kullanabilirsiniz:

  using GooglePlayGames;

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

Authenticate oyunundan başarılı bir iade değeri alana kadar Google Play Games API çağrısı yapamazsınız. Sonuç olarak, kullanıcıların kimlik doğrulama tamamlanana kadar oyunu oynamaya başlayamayacaklarından emin olmak için geri çağırma yapılana kadar oyunların bekleme ekranı görüntülemesini öneririz.

Sunucu kimlik doğrulama kodlarını al

Mevcut oynatıcı adına arka uç web sunucusundaki Google API'lerine erişmek için istemci uygulamasından kimlik doğrulama kodu almanız ve bunu web sunucusu uygulamanıza iletmeniz gerekir. Bu kod daha sonra çeşitli API'lere çağrı yapmak için bir erişim jetonuyla değiştirilebilir. İş akışı hakkında bilgi edinmek için Web Siteleri İçin Google ile Oturum Açma bölümüne bakın.

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

  1. Play Oyun Konsolu'nda oyununuza bağlı web uygulamasının web istemcisi kimliğini yapılandırın.

  2. Sunucu tarafı erişim kodunu almak için oynatıcının kimliği doğrulandıktan sonra PlayGamesPlatform.Instance.RequestServerSideAccess çağrısı yapın.

  3. Bu kodu sunucu uygulamanıza iletin.

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

Özellikleri ayarlama ve ekleme