Firebase'i Unity projenize ekleyin
Firebase Unity SDK'larımızla Unity oyunlarınızı güçlendirin.
Firebase'i Unity projenize bağlamanın ne kadar kolay olduğunu göstermek için GitHub , App Store ve Google Play Store'dan indirebileceğiniz örnek bir oyun olan MechaHamster'ı yaptık.
Oyunlarınızı Firebase ile güçlendirmek hakkında daha fazla bilgiyi Firebase oyunları sayfamızda bulabilirsiniz .
Firebase'i Unity projenize zaten eklediniz mi? Firebase Unity SDK'nın en son sürümünü kullandığınızdan emin olun.
Önkoşullar
Unity 2017.4 veya sonraki bir sürümünü yükleyin. Daha önceki sürümler de uyumlu olabilir ancak aktif olarak desteklenmeyecektir.
(yalnızca iOS) Aşağıdakileri yükleyin:
- Xcode 9.4.1 veya üstü
- CocoaPods 1.10.0 veya üstü
Unity projenizin şu gereksinimleri karşıladığından emin olun:
- İOS için - iOS 10 veya sonraki bir sürümü hedefler
- Android için - API seviyesi 16 (Jelly Bean) veya üzerini hedefler
Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya bir emülatör kullanın.
İOS için - Fiziksel bir iOS cihazı kurun veya iOS simülatörünü kullanın.
İOS'ta Bulut Mesajlaşma için ön koşullar şunlardır:
- Fiziksel bir iOS cihazı kurun.
- Apple Geliştirici hesabınız için bir Apple Push Bildirimi Kimlik Doğrulama Anahtarı edinin.
- XCode'da Uygulama> Yetenekler altında Anında Bildirimleri etkinleştirin.
Android için - Emülatörler Google Play ile bir emülatör görüntüsü kullanmalıdır.
- Google hesabınızı kullanarak Firebase'de oturum açın.
Halihazırda bir Unity projeniz yoksa ve sadece bir Firebase ürününü denemek istiyorsanız hızlı başlangıç örneklerimizden birini indirebilirsiniz.
1. Adım : Firebase projesi oluşturun
Unity projenize Firebase eklemeden önce, Unity projenize bağlanmak için bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama bölümünü ziyaret edin.
2. Adım : Uygulamanızı Firebase'e kaydedin
Firebase projenize bağlanmak için bir veya daha fazla uygulama veya oyun kaydedebilirsiniz.
Projeye genel bakış sayfasının
, kurulum iş akışını başlatmak için Unity simgesine ( ) tıklayın.Firebase projenize zaten bir uygulama eklediyseniz, platform seçeneklerini görüntülemek için Uygulama ekle'yi tıklayın.
Unity projenizin hangi derleme hedefini kaydetmek istediğinizi seçin veya hatta şimdi aynı anda her iki hedefi de kaydetmeyi seçebilirsiniz.
Unity projenizin platforma özgü kimliklerini girin.
İOS için - Unity projenizin iOS kimliğini iOS paket kimliği alanına girin.
Android için - Unity projenizin Android kimliğini Android paket adı alanına girin.
Paket adı ve uygulama kimliği terimleri genellikle birbirinin yerine kullanılır.
Unity projenizi Unity IDE'nizde açın, ardından her platform için ayarlar bölümüne gidin:
Gezin> iOS Ayarları kurmak için - iOS için.
Android için - Android> Oyuncu Ayarları> Diğer Ayarlar'a gidin .
Unity projenizin kimliği, Paket Tanımlayıcı değeridir (örnek ID:
com.yourcompany.yourproject
).(İsteğe bağlı) Unity projenizin platforma özel takma adlarını girin.
Bu takma adlar dahili, kullanışlı tanımlayıcılardır ve yalnızca Firebase konsolunda sizin tarafınızdan görülebilir.Uygulamayı kaydet'i tıklayın.
3. Adım : Firebase yapılandırma dosyalarını ekleyin
Firebase konsolu kurulum iş akışında platforma özel Firebase yapılandırma dosyalarınızı edinin.
İOS için - GoogleService-Info.plist'i İndir'i tıklayın.
Android için - google-services.json indir'i tıklayın.
Firebase yapılandırma dosyası, projeniz için benzersiz ancak gizli olmayan tanımlayıcılar içerir. Bu yapılandırma dosyası hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama sayfasını ziyaret edin.
Firebase yapılandırma dosyanızı istediğiniz zaman tekrar indirebilirsiniz.
Yapılandırma dosyası adına
(2)
gibi ek karakterlerin eklenmediğinden emin olun.
Unity projenizin Proje penceresini açın, ardından yapılandırma dosyalarınızı
Assets
klasörüne taşıyın.Geri Firebase konsolunda, kurulum iş akışında, İleri'yi tıklayın.
4. Adım : Firebase Unity SDK'larını ekleyin
Firebase konsolunda, Firebase Unity SDK'yı İndir'i tıklayın, ardından SDK'yı uygun bir yerde açın.
Firebase Unity SDK'yı istediğiniz zaman tekrar indirebilirsiniz.
Firebase Unity SDK, platforma özel değildir.
Açık Unity projenizde, Varlıklar > Paketi İçe Aktar > Özel Paket'e gidin .
Sıkıştırılmış SDK'dan, uygulamanızda kullanmak istediğiniz desteklenen Firebase ürünlerini seçin.
Analytics etkinleştirildi
- Google Analytics için Firebase paketini ekleyin:
FirebaseAnalytics.unitypackage
- Uygulamanızda kullanmak istediğiniz diğer Firebase ürünleri için paketleri ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database kullanmak için:
FirebaseAuth.unitypackage
veFirebaseDatabase.unitypackage
Analytics etkinleştirilmedi
Uygulamanızda kullanmak istediğiniz Firebase ürünleri için paketleri ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database kullanmak için:
FirebaseAuth.unitypackage
veFirebaseDatabase.unitypackage
- Google Analytics için Firebase paketini ekleyin:
İthalat Birlik Paketi penceresinde, Al'ı tıklatın.
Geri Firebase konsolunda, kurulum iş akışında, İleri'yi tıklayın.
5. Adım : Google Play hizmetleri sürüm gereksinimlerini onaylayın
Android için Firebase Unity SDK'sı, SDK'nın kullanılabilmesi için güncel olması gereken Google Play hizmetlerini gerektirir.
Uygulamanızın başlangıcına aşağıdaki kodu ekleyin. SDK'daki diğer yöntemleri çağırmadan önce Google Play hizmetlerini kontrol edebilir ve isteğe bağlı olarak Firebase Unity SDK'nın gerektirdiği sürüme güncelleyebilirsiniz.
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => { var dependencyStatus = task.Result; if (dependencyStatus == Firebase.DependencyStatus.Available) { // Create and hold a reference to your FirebaseApp, // where app is a Firebase.FirebaseApp property of your application class. app = Firebase.FirebaseApp.DefaultInstance; // Set a flag here to indicate whether Firebase is ready to use by your app. } else { UnityEngine.Debug.LogError(System.String.Format( "Could not resolve all Firebase dependencies: {0}", dependencyStatus)); // Firebase Unity SDK is not safe to use here. } });
Hazırsınız! Unity projeniz kaydedildi ve Firebase'i kullanacak şekilde yapılandırıldı.
Bilinen Sorunlar
Unity 2017.x ve sonraki sürümleri kullanırken .NET uyumluluğu
Firebase, Unity 2017 ve sonrasında deneysel bir derleme seçeneği olarak .NET 4.x'i destekler. Firebase eklentileri, .NET'in önceki sürümlerinde bazı .NET 4.x sınıflarını sağlamak için Ayrıştırma SDK'nın bileşenlerini kullanır.
Bu nedenle, Firebase Unity SDK sürüm 5.4.0
ve sonraki sürümler, dotnet3
Unity SDK'nın dotnet3
ve dotnet4
dizinlerinde .NET 3.x veya .NET 4.x ile uyumlu eklentiler sağlar.
Projenizde etkinleştirilmiş .NET sürümüyle uyumsuz olan bir Firebase eklentisini içe aktarırsanız, .NET çerçevesinde Parse SDK tarafından uygulanan bazı türlerden derleme hataları görürsünüz.
NET 3.x kullanıyorsanız, derleme hatasını çözmek için:
- Tüm platformlar için aşağıdaki DLL'leri kaldırın veya devre dışı bırakın:
-
Parse/Plugins/dotNet45/Unity.Compat.dll
-
Parse/Plugins/dotNet45/Unity.Tasks.dll
-
- Tüm platformlar için aşağıdaki DLL'leri etkinleştirin:
-
Parse/Plugins/Unity.Compat.dll
-
Parse/Plugins/Unity.Tasks.dll
-
NET 4.x kullanıyorsanız, derleme hatasını çözmek için:
- Tüm platformlar için aşağıdaki DLL'leri kaldırın veya devre dışı bırakın:
-
Parse/Plugins/Unity.Compat.dll
-
Parse/Plugins/Unity.Tasks.dll
-
- Tüm platformlar için aşağıdaki DLL'leri etkinleştirin:
-
Parse/Plugins/dotNet45/Unity.Compat.dll
-
Parse/Plugins/dotNet45/Unity.Tasks.dll
-
Başka bir Firebase eklentisini içe aktarırsanız:
- Unity projenizde, projeniz için doğru DLL'leri etkinleştirmek üzere Assets > Play Services Resolver > Version Handler > Update'e gidin .
.NET 4.x projelerinde Unity 2017.1 IL2CPP derlemesi
Firebase, Unity 2017 ve sonrasında deneysel bir derleme seçeneği olarak .NET 4.x'i destekler. Firebase eklentileri, .NET'in önceki sürümlerinde bazı .NET 4.x sınıflarını sağlamak için Ayrıştırma SDK'nın bileşenlerini kullanır.
Bu nedenle, Firebase Unity SDK sürüm 5.4.0 ve sonraki sürümler, Parse türlerini (örneğin, System.Threading.Tasks.Task
Parse uygulamasını) .NET çerçevesine ileten tür yönlendirme DLL'leri sağlar. Ne yazık ki, Unity 2017.1.x ile gönderilen IL2CPP (C # 'yi C ++' ya dönüştüren bir aktarıcı), tür iletme DLL'lerini doğru şekilde işlemez ve bu da aşağıdakilere benzer yapı hatalarına neden olur:
Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>
Unity 2017.1'de .NET 4.x IL2CPP derleme hataları için şu anda bir geçici çözüm bulunmadığından, IL2CPP ile derlenen projelerde .NET 4.x'i kullanmak için Unity 2017.2 veya sonraki bir sürüme yükseltmeniz gerekir.
Unity 2017.2 ağ iletişimi
Firebase Realtime Database, .NET ağ yığınını kullanarak TLS ağ bağlantıları oluşturur. Unity 2017.2'de .NET 4.6 kullanılırken TLS işlevselliği bozulur ve Realtime Database eklentisinin düzenleyicilerde ve masaüstünde başarısız olmasına neden olur.
Bu sorun için geçici bir çözüm bulunmadığından, Unity'nin farklı bir sürümünü, örneğin 2017.1 veya 2017.3 sürümünü kullanmanız gerekir.
Unity 2020'de Firebase Android yapılandırma dosyası eksik.
Gradle derlemesini özelleştirme becerisine sahip olmayan Unity sürümlerini desteklemek için Firebase düzenleyici aracı, bir Android kaynağı olarak Assets/Plugins/Android/Firebase/res/values/google-services.xml
. Firebase SDK'nın varsayılan FirebaseApp örneğini başlatmak için kullanabilmesi için Android derlemesi.
Unity 2020'de, tüm Android kaynakları .androidlib
sonekine sahip dizinlerde olmalıdır. Projeniz bir üreten bir Firebase SDK kullanıyorsa Assets/Plugins/Android/Firebase
dizini için yeniden adlandırın Assets/Plugins/Android/Firebase.androidlib
. AndroidManifest.xml
, project.properties
ve res/values/google-services.xml
içerdiğinden emin olun.
Android uygulaması oluştururken tek dex ile ilgili bir sorun
Android uygulaması oluştururken, tek bir dex dosyasına sahip olmakla ilgili bir derleme hatasıyla karşılaşabilirsiniz. Projeniz Gradle derleme sistemini kullanacak şekilde yapılandırıldıysa, hata mesajı aşağıdakine benzer görünür.
Cannot fit requested classes in a single dex file.
Dalvik Yürütülebilir ( .dex
) dosyaları, Android uygulamaları için bir dizi sınıf tanımını ve bunlarla ilişkili yardımcı verileri ( .apk
) tutmak için kullanılır. Tek bir dex dosyası 65.536 yöntemle sınırlıdır. Projenizdeki tüm Android kitaplıklarındaki toplam yöntem sayısı bu sınırı aşarsa derleme başarısız olur.
Birlik tanıtıldı küçültülmesi tek dex dosyasında başvurulan yöntemlerin sayısını azaltabilir kullanılmayan kod dışında Şerit (Unity bazı sürümlerinde veya diğer araçları) ProGuard kullanan, 2017.2 yılında. Bu seçenek, Oyuncu Ayarları> Android> Yayın Ayarları> Küçült bölümünde bulunabilir. Seçenekler, Unity'nin farklı sürümlerinde farklılık gösterebilir, bu nedenle resmi Unity belgelerine bakın.
Başvurulan yöntemlerin sayısı yine de sınırı aşıyorsa, başka bir seçenek de multidex
etkinleştirmektir. Unity'de bunu başarmanın birçok yolu vardır:
-
Player Settings
altındaCustom Gradle Template
etkinleştirildiyse,mainTemplate.gradle
Player Settings
değiştirin. - Dışa aktarılan projeyi oluşturmak için Android Studio kullanıyorsanız, modül düzeyinde
build.gradle
dosyasını değiştirin.
Multidex kullanıcı kılavuzunda daha fazla ayrıntı bulunabilir.
Bir masaüstü iş akışı ( beta ) ayarlayın
Bir oyun oluştururken, oyununuzu önce Unity düzenleyicide ve masaüstü platformlarında test etmek, ardından geliştirmede daha sonra mobil cihazlarda dağıtmak ve test etmek genellikle çok daha kolaydır. Bu iş akışını desteklemek için Windows, macOS, Linux ve Unity düzenleyicinin içinden çalışabilen Firebase Unity SDK'larının bir alt kümesini sağlıyoruz.
Mobil platformla aynı talimatları izleyerek bir masaüstü platform Unity projesi oluşturun (yukarıdaki Uygulamanızı Firebase ile kaydettirme adımıyla başlayın).
Unity projenizi Unity IDE'de çalıştırın veya masaüstü için Unity projenizi oluşturmayı seçin.
(İsteğe bağlı) Unity projenizi Düzenleme Modunda çalıştırın.
Firebase Unity SDK, Unity'nin düzenleme modunda da çalıştırılabilir ve editör eklentilerinde kullanımına izin verir.
Düzenleyici tarafından kullanılan bir
FirebaseApp
oluşturduğunuzda, varsayılan örneği kullanmayın.Bunun yerine,
FirebaseApp.Create()
çağrısına benzersiz bir ad verin.Bu, Unity IDE tarafından kullanılan örnek ile Unity projeniz tarafından kullanılan örnek arasındaki seçeneklerde bir çakışmayı önlemek için önemlidir.
Desteklenen Firebase ürünleri
Referans belgelerinden Unity Firebase kitaplıkları hakkında daha fazla bilgi edinin.
Firebase Unity SDK, iOS ve Android'de aşağıdaki Firebase ürünlerini destekler:
Firebase ürünü | Birlik paketi |
---|---|
AdMob | AdMob Unity Eklentisinde ayrı olarak dağıtılır |
Analitik | FirebaseAnalytics.unitypackage |
Doğrulama | FirebaseAuth.unitypackage |
Cloud Firestore (beta) | FirebaseFirestore.unitypackage |
Bulut İşlevleri | FirebaseFunctions.unitypackage |
Bulut Mesajlaşma | FirebaseMessaging.unitypackage (önerilen) FirebaseAnalytics.unitypackage |
Bulut depolama | FirebaseStorage.unitypackage |
Crashlytics | FirebaseCrashlytics.unitypackage (önerilen) FirebaseAnalytics.unitypackage |
Dinamik Bağlantılar | FirebaseDynamicLinks.unitypackage (önerilen) FirebaseAnalytics.unitypackage |
Gerçek Zamanlı Veritabanı | FirebaseDatabase.unitypackage |
Uzaktan Yapılandırma | FirebaseRemoteConfig.unitypackage (önerilen) FirebaseAnalytics.unitypackage |
Desteklenen Firebase ürünleri (masaüstü)
Firebase Unity SDK, bir ürün alt kümesi için masaüstü iş akışı desteği içerir ve Firebase'in belirli bölümlerinin Unity düzenleyicide ve Windows, macOS ve Linux'ta bağımsız masaüstü yapılarında kullanılmasını sağlar.
Firebase ürünü (masaüstü) | Birlik paketi |
---|---|
Doğrulama | FirebaseAuth.unitypackage |
Bulut İşlevleri | FirebaseFunctions.unitypackage |
Cloud Firestore | FirebaseFirestore.unitypackage |
Bulut depolama | FirebaseStorage.unitypackage |
Gerçek Zamanlı Veritabanı | FirebaseDatabase.unitypackage |
Uzaktan Yapılandırma | FirebaseRemoteConfig.unitypackage |
Firebase, Windows, macOS ve Linux için derleme yaparken kolaylık sağlamak için kalan masaüstü kitaplıklarını saplama (işlevsel olmayan) uygulamalar olarak sağlar. Bu nedenle, masaüstünü hedeflemek için kodu koşullu olarak derlemenize gerek yoktur.
Sonraki adımlar
Örnek Firebase uygulamalarını keşfedin.
Uygulamanızı başlatmaya hazırlanın:
- Google Cloud Console'da projeniz için bütçe uyarıları ayarlayın.
- Firebase konsolunda Kullanım ve faturalandırma kontrol panelinizi izleyin.
- Firebase başlatma kontrol listesini inceleyin .