Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Unity projenize

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.

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Oyun Mağazası)


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 5.3 veya üzerini yükleyin.

  • (yalnızca iOS) Aşağıdakileri yükleyin:

    • Xcode 9.4.1 veya üstü
    • CocoaPods 1.4.0 veya üstü
  • Unity projenizin şu gereksinimleri karşıladığından emin olun:

    • İOS için - iOS 8 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.

    • 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 yalnızca 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'i 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.

  1. Firebase konsoluna gidin .

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

  3. Unity projenizin hangi derleme hedefini kaydetmek istediğinizi seçin veya hatta şimdi aynı anda her iki hedefi de kaydetmeyi seçebilirsiniz.

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

  5. (İ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.

  6. Uygulamayı kaydet'i tıklayın.

3. Adım : Firebase yapılandırma dosyalarını ekleyin

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

  2. Unity projenizin Proje penceresini açın, ardından yapılandırma dosyalarınızı Assets klasörüne taşıyın.

  3. Geri Firebase konsolunda, kurulum iş akışında, İleri'yi tıklayın.

4. Adım : Firebase Unity SDK'larını ekleyin

Unity Paket Yöneticisi'ni kullanarak desteklenen Firebase ürünlerini Unity projenize ekleyebilir veya SDK'ları manuel olarak yükleyebilirsiniz.

Unity Paket Yöneticisi

Unity 2018.4 veya daha yenisini ve .NET 4.x veya .NET Standard 2.0 kullanıyorsanız, Unity Paket Yöneticisi'ni kullanarak Firebase SDK bileşenlerini yükleyebilirsiniz:

  1. Google'ın Oyun Paketi Kaydını Unity projenize ekleyin.

    • Firebase SDK ve EDM4U'yu (resmi adı Play Services Resolver) daha önce hiç içe aktarmadıysanız, aşağıdaki bloğu Packages/manifest.json manuel olarak ekleyebilirsiniz.

      "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
      

      Facebook SDK gibi diğer bazı SDK'ların .unity paketlerinde EDM4U içerebileceğini .unitypackage . Assets/ExternalDependencyManager veya Assets/PlayServicesResolver klasörlerinin olup olmadığını kontrol edin. Bu klasörler varsa, Unity Paket Yöneticisi aracılığıyla herhangi bir Firebase SDK yüklemeden önce bunları kaldırın.

    • Mevcut bir SDK'yı taşımanız veya daha etkileşimli bir yöntemi tercih etmeniz gerekiyorsa, en son External Dependency Manager for Unity'yi (EDM4U) içe aktarın.

      Unity Paket Yöneticisi Çözümleyicisi, Google tarafından hazırlanan Oyun Paketi Kaydını projenize eklemenizi isteyecektir. Kaydı seçin ve Seçilen Kayıtları Ekle düğmesini tıklayın.

      • EDM4U, kayıt defterini mevcut Unity proje klasörünüzün altındaki Packages/manifest.json ekler.

      • Ayrıca manaully> kayıt defterlerinin veya Pencere> Google'a> Oyun Paketi Kayıt Ekle> Bu kayıt daha sonra Varlıklar> Harici Bağımlılık Yöneticisi> Birlik Paket Yöneticisi Çözücü kullanarak eklemek için Proje menü seçenekleri ekleme yapabilirsiniz.

  2. Geçiş yoluyla ithal Firebase ve EDM4U paketleri çıkan .unitypackage Birlik Paketi Yöneticisi. Bu, aşağıdaki yöntemlerden biri ile yapılabilir.

    • Kayıt EDM4U tarafından eklendikten sonra, "Paketleri Taşıma" başlıklı bir iletişim kutusu açılmalıdır. Bu iletişim kutusu, Unity Paket Yöneticisi aracılığıyla kurulabilecek her paketi listeler. Hepsini seçmenizi ve Uygula düğmesini tıklamanızı öneririz.

    • Bu iletişim kutusunu daha sonra Varlıklar > Dış Bağımlılık Yöneticisi > Unity Paket Yöneticisi Çözümleyicisi > Paketleri Taşı menü seçeneklerini kullanarak manuel olarak da açabilirsiniz.

    • Ayrıca .unitypackage aracılığıyla içe aktarılan her paketi aşağıdaki adımlarla manuel olarak da .unitypackage .

      1. Assets klasörünüzden hem Firebase Unity SDK'sını hem de EDM4U'yu kaldırın. EDM4U, Varlıklar > Dış Bağımlılık Yöneticisi > Sürüm İşleyici > Yönetilen Paketleri Kaldır menü seçeneği kullanılarak erişilebilen yönetilen paketleri kaldırmak için bir araç sağlar. Tüm Firebase SDK'larını ve Harici Bağımlılık Yöneticisi'ni seçin ve Seçili Paketleri Kaldır'ı tıklayın.

        • Alternatif olarak, SDK'yı Varlıklar klasöründen manuel olarak da kaldırabilirsiniz.
      2. Pencere > Paket Yöneticisi'ni seçip Firebase arayarak, Unity Paket Yöneticisi'ni kullanarak Firebase Unity SDK bileşenlerini yükleyin. Firebase Unity SDK bileşenleri bu arayüz aracılığıyla yüklenebilir, taşınabilir ve kaldırılabilir.

  3. Artık, Pencere > Paket Yöneticisi'ni seçerek Unity Paket Yöneticisi'ni kullanarak herhangi bir Firebase Unity SDK bileşenini veya Google paketini keşfedip yükleyebilirsiniz. Tüm bu bileşenler bu arayüz üzerinden kurulabilir, taşınabilir ve kaldırılabilir.

Manuel kurulum

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

  2. Açık Unity projenizde, Varlıklar > Paketi İçe Aktar > Özel Paket'e gidin .

  3. 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 ve FirebaseDatabase.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 ve FirebaseDatabase.unitypackage

  4. İthalat Birlik Paketi penceresinde, Al'ı tıklatın.

  5. 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 Firebase Unity SDK'nın gerektirdiği sürüme kontrol edebilir ve isteğe bağlı olarak 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 Parse 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 uyumlu olmayan bir Firebase eklentisini içe aktarırsanız, Çözüm SDK tarafından uygulanan .NET çerçevesindeki bazı türlerden derleme hataları görürsünüz.

NET 3.x kullanıyorsanız, derleme hatasını çözmek için:

  1. 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
  2. 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:

  1. 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
  2. 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 Parse SDK bileşenlerini kullanır.

Bu nedenle, Firebase Unity SDK sürüm 5.4.0 ve sonraki sürümleri, 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 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ştiremeyen Unity sürümlerini desteklemek için Firebase düzenleyici aracı, bir Android kaynağı olarak Assets/Plugins/Android/Firebase/res/values/google-services.xml . Android derlemesi, böylece Firebase SDK bunu varsayılan FirebaseApp örneğini başlatmak için kullanabilir.

Unity 2020'de, tüm Android kaynakları .androidlib sonekine sahip dizinlerde olmalıdır. Projeniz Assets/Plugins/Android/Firebase dizini oluşturan bir Firebase SDK kullanıyorsa, onu Assets/Plugins/Android/Firebase.androidlib yeniden adlandırın. AndroidManifest.xml , project.properties ve res/values/google-services.xml içerdiğinden emin olun.

Unity Paket Yöneticisi kullanılırken Kurulum Çakışması

Farklı kaynaklardan bir paket kurulabilir. Örneğin, Unity için Harici Bağımlılık Yöneticisi ( kısaca EDM4U , önceden Play Services Resolver veya Unity Jar Resolver olarak adlandırılır) aşağıdaki yollardan herhangi biriyle kurulabilir.

EDM4U , .unitypackage ve Unity Package Manager aracılığıyla aynı anda kurulduğunda, bir kurulum çakışması vardır ve Unity, bir GUID çakışması veya sembol çakışması hakkında bir hata gösterebilir. EDM4U şu anda bu tür durumlar için çözüm sunmamaktadır. Bu olduğunda, işte geçici çözüm:

Unity 2018'de Unity Paket Yöneticisi üzerinden yüklenen Firebase ile ilgili sorunlar

Firebase , Unity 2018'de Unity Paket Yöneticisi aracılığıyla yüklendiğinde, EDM4U , Firebase'in Android ve iOS yerel bağımlılıklarından bazılarını keşfedemeyebilir. Bunun nedeni, bağımlılık olarak kurulan paketlerdeki dosyaların Unity'nin AssetDatabase'e kaydedilmemesidir. En yaygın sorun, bir oluşturamıyor ediliyor FirebaseApp nedeniyle etmek Android'de DllNotFoundException .

Örneğin, Realtime Database Unity Package Manager aracılığıyla kurulduğunda, hem Auth hem de Firebase App (Core) bağımlılıkları olarak otomatik olarak yüklenir. Ancak, EDM4U , Unity 2018'de AssetDatabase'e kayıtlı olmadıkları için Android ve iOS yerel bağımlılıklarını içeren AuthDependencies.xml ve AppDependencies.xml bulamaz. Sonuç olarak, bazı yerel kitaplıklar Android'de eksik olabilir veya iOS derlemesi.

Bu sorunun çözümü, tüm Firebase paketlerinin Unity Paket Yöneticisi aracılığıyla açıkça yüklendiğinden emin olmaktır. Örneğin, Realtime Database yüklemek istiyorsanız, Unity Package Manager aracılığıyla Auth ve Firebase App (Core) için install de tıkladığınızdan 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ı ( .apk ) için bir dizi sınıf tanımını ve bunlarla ilişkili ek verileri 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ından 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, Oynatıcı 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ında Custom 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.

Daha fazla ayrıntı multidex kullanıcı kılavuzunda 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 üzerinde ve Unity düzenleyicinin içinden çalışabilen Firebase Unity SDK'larının bir alt kümesini sağlıyoruz.

  1. Mobil platformla aynı talimatları izleyerek bir masaüstü platform Unity projesi oluşturun (yukarıdaki Uygulamanızı Firebase ile kaydedin adımıyla başlayın.

  2. Unity projenizi Unity IDE'de çalıştırın veya masaüstü için Unity projenizi oluşturmayı seçin.

  3. (İ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.

    1. Düzenleyici tarafından kullanılan bir FirebaseApp oluşturduğunuzda, varsayılan örneği kullanmayın.

    2. 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 (alfa) 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'taki 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 (alfa) 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