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
Google Play Console'da oyununuz için Play Console'u ayarlayın.
Google Play Console'da bir başarı oluşturun.
Eklenti Yükleme
Aşağıdaki seçeneklerden birini kullanarak eklentiyi edinin:
GitHub deposunu dosya sisteminize klonlayın.
GitHub deposunu ZIP dosyası olarak indirin ve paketi açın.
current-build
dizinindeunitypackage
dosyasını bulun. Bu dosya eklentidir. Örneğin, aşağıdaki gibi görünmelidir:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Oyun projenizi Unity'de açın.
Öğeler > Paketi İçe Aktar > Özel Paket menü öğesini tıklayarak
unitypackage
dosyasını proje öğelerine aktarın.Geçerli derleme platformunuzun Android'e ayarlandığından emin olun.
Ana menüde Dosya > Derleme Ayarları... seçeneğini tıklayın.
Android'i seçin ve Platformu Değiştir'i tıklayın.
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.
Oyununuz için Android kaynaklarını edinin.
Play Console'da, oyununuz için Play Oyun Hizmetleri projesini açın.
Başarılar sekmesini, ardından Kaynakları alın'ı tıklayın.
Kaynakları dışa aktar penceresinde, Android sekmesini tıklayın.
XML içeriğini seçin ve kopyalayın.
Unity projenizi oluşturma
Android kaynaklarını Unity projenize ekleyin.
Unity'de ** Pencere > Google Play Games > Kurulum...'u tıklayın. > Android Kurulumu **.
Kurulum pencerelerindeki şu öğeleri tamamlayın:
Sabit değerlerin kaydedileceği dizin: Sabit değerler dosyasının klasörü.
Sabit sınıf adı: Ad alanı da dahil olmak üzere oluşturulacak C# sınıfının adı.
Kaynak Tanımı: Play Console'daki Android kaynak verilerini buraya yapıştırın.
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.
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:
- JAVA_HOME ortam değişkenini Java SDK yükleme yolunuza (örneğin,
C:\Program Files\Java\jdk1.7.0_45
) ayarlayın. - 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
) - 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:
PlayGamesPlatform.Activate
numarasını aramaXyz
,Social
sınıfında çağırmak istediğiniz yöntemin adıysaSocial.Xyz
yöntemini çağırmayın. Bunun yerinePlayGamesPlatform.Instance.Xyz
numaralı telefonu arayın- Google Play Games ile etkileşimde bulunurken
Social.Active
uygulamasını kullanmayın. Bunun yerinePlayGamesPlatform.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:
Play Oyun Konsolu'nda oyununuza bağlı web uygulamasının web istemcisi kimliğini yapılandırın.
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.Bu kodu sunucu uygulamanıza iletin.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Özellikleri ayarlama ve ekleme
Play Oyun Hizmetleri özelliklerini etkinleştirin.
Play Oyun Hizmetleri API'larını kullanarak oyununuza özellikler ekleyin: