Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Unity projeniz

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.

Ön şartlar

  • 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 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 sayfası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. Kayıt defterini 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 dosyasına 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 > Harici 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 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:

  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 için 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ş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 özelleştirilmiş kaynak dosyası dahil etme işlevselliği bozulmuş veya değiştirilmiştir. Sonuç olarak, uygulama varsayılan örneği oluşturamayacaktır.

Bunun çözümü, kaynağı mainTemplate.gradle el ile mainTemplate.gradle .

  1. Genellikle Düzenle > Proje Ayarları ... > Oyuncu menü seçeneğinde bulunan Unity'de Oyuncu Ayarlarını açın.
  2. Yayınlama Ayarları altında Custom Main Gradle Template seçeneğini bulun ve işaretli olduğundan emin olun.
  3. Bir metin düzenleyiciyle Assets/Plugins/Android/mainTemplate.gradle açın.
  4. Aşağıdaki bloğu mainTemplate.gradle .

    android {
        sourceSets {
            main {
                def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
                res.srcDirs += (unityProjectPath +  '/Assets/Plugins/Android/Firebase/res/values/google-services.xml')
            }
        }
    }
    

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

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

  • Dış Bağımlılık Yöneticisi .unitypackage içe aktarma.
  • Onların içinde EDM4U içeren Firebase SDK veya diğer SDK içe .unitypackage .
  • Dış Bağımlılık Yöneticisini Unity Paket Yöneticisi aracılığıyla Kurmak
  • Firebase SDK'sını veya EDM4U'yu Unity Paket Yöneticisi aracılığıyla bağımlılığı olarak ayarlayan başka bir SDK'yı yüklemek.

EDM4U (veya Firebase) .unitypackage ve Unity Paket Yöneticisi aracılığıyla aynı anda kurulduğunda, bir kurulum çakışması olur ve Unity, 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:

  • Firebase ve EDM4U'yu daha önce Unity Package Manager'a taşıdıysanız ve Google Ads veya Facebook SDK gibi .unitypackage içine .unitypackage içeren başka bir SDK .unitypackage , Assets/ExternalDependencyManager ve / veya Assets/PlayServicesResolver klasörlerini kaldırmanız yeterlidir.
  • EDM4U'yu önce Assets klasöründen kaldırmadan önce Unity Paket Yöneticisi aracılığıyla yanlışlıkla yüklediyseniz, çakışmayı çözmek için aşağıdaki adımları kullanın:
    1. Assets/ExternalDependencyManager ve / veya Assets/PlayServicesResolver klasörlerini Assets/PlayServicesResolver .
    2. Unity Paket Yöneticisi'nden tüm Firebase ve EDM4U paketlerini kaldırın
    3. UPM'den gerekli tüm Firebase ve EDM4U paketlerini yeniden yükleyin.

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
Kimlik 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'ta bağımsız masaüstü yapılarında kullanılmasını sağlar.

Firebase ürünü (masaüstü) Birlik paketi
Kimlik 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