Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Ajoutez Firebase à votre projet Unity

Améliorez vos jeux Unity avec nos SDK Firebase Unity.

Pour montrer à quel point il est facile de connecter Firebase à votre projet Unity, nous avons créé un exemple de jeu, MechaHamster, que vous pouvez télécharger depuis GitHub , l' App Store et le Google Play Store .

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Pour plus d'informations sur la mise sous tension de vos jeux avec Firebase, consultez notre page de jeux Firebase .

Vous avez déjà ajouté Firebase à votre projet Unity? Assurez-vous que vous utilisez la dernière version du SDK Firebase Unity .

Conditions préalables

  • Installez Unity 5.3 ou version ultérieure.

  • (iOS uniquement) Installez les éléments suivants:

    • Xcode 9.4.1 ou version ultérieure
    • CocoaPods 1.4.0 ou version ultérieure
  • Assurez-vous que votre projet Unity répond à ces exigences:

    • Pour iOS - cible iOS 8 ou version ultérieure
    • Pour Android - cible le niveau d'API 16 (Jelly Bean) ou version ultérieure
  • Configurez un appareil physique ou utilisez un émulateur pour exécuter votre application.

    • Pour iOS - Configurez un appareil iOS physique ou utilisez le simulateur iOS.

    • Pour Android - Les émulateurs doivent utiliser une image d'émulateur avec Google Play.

Si vous n'avez pas encore de projet Unity et que vous souhaitez simplement essayer un produit Firebase, vous pouvez télécharger l'un de nos exemples de démarrage rapide .

Étape 1 : créer un projet Firebase

Avant de pouvoir ajouter Firebase à votre projet Unity, vous devez créer un projet Firebase pour vous connecter à votre projet Unity. Consultez Comprendre les projets Firebase pour en savoir plus sur les projets Firebase.

Étape 2 : enregistrez votre application avec Firebase

Vous pouvez enregistrer une ou plusieurs applications ou jeux pour vous connecter à votre projet Firebase.

  1. Accédez à la console Firebase .

  2. Au centre de la page de du projet, cliquez sur l'icône Unity ( ) pour lancer le workflow de configuration.

    Si vous avez déjà ajouté une application à votre projet Firebase, cliquez sur Ajouter une application pour afficher les options de la plate-forme.

  3. Sélectionnez la cible de construction de votre projet Unity que vous souhaitez enregistrer, ou vous pouvez même choisir d'enregistrer les deux cibles maintenant en même temps.

  4. Entrez les ID spécifiques à la plate-forme de votre projet Unity.

    • Pour iOS - Entrez l'ID iOS de votre projet Unity dans le champ ID du bundle iOS .

    • Pour Android - Saisissez l'ID Android de votre projet Unity dans le champ du nom du package Android .
      Les termes nom de package et ID d'application sont souvent utilisés de manière interchangeable.

  5. (Facultatif) Saisissez le ou les surnoms spécifiques à la plate-forme de votre projet Unity.
    Ces surnoms sont des identifiants internes et pratiques et ne sont visibles que par vous dans la console Firebase.

  6. Cliquez sur Enregistrer l'application .

Étape 3 : Ajouter les fichiers de configuration Firebase

  1. Obtenez vos fichiers de configuration Firebase spécifiques à la plate-forme dans le workflow de configuration de la console Firebase.

    • Pour iOS - Cliquez sur Télécharger GoogleService-Info.plist .

    • Pour Android - Cliquez sur Télécharger google-services.json .

  2. Ouvrez la fenêtre Projet de votre projet Unity, puis déplacez vos fichiers de configuration dans le dossier Assets .

  3. De retour dans la console Firebase, dans le workflow de configuration, cliquez sur Suivant .

Étape 4 : Ajouter des SDK Firebase Unity

Vous pouvez ajouter des produits Firebase pris en charge à votre projet Unity à l'aide du gestionnaire de packages Unity , ou vous pouvez installer les SDK manuellement.

Gestionnaire de packages Unity

Si vous utilisez Unity 2018.4 ou version plus récente et .NET 4.x ou .NET Standard 2.0, vous pouvez installer les composants du SDK Firebase à l'aide du gestionnaire de packages Unity:

  1. Ajoutez le registre de packages de jeu de Google à votre projet Unity.

    • Si vous n'avez jamais importé le SDK Firebase et EDM4U (anciennement appelé Play Services Resolver) auparavant, vous pouvez ajouter manuellement le bloc suivant à Packages/manifest.json .

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

      Notez que certains autres SDK, tels que le SDK Facebook, peuvent contenir EDM4U dans leur .unitypackage . Vérifiez si les dossiers Assets/ExternalDependencyManager ou Assets/PlayServicesResolver existent. Si ces dossiers existent, supprimez-les avant d'installer un SDK Firebase via Unity Package Manager.

    • Si vous avez besoin de migrer un SDK existant ou préférez une méthode plus interactive, importez le dernier gestionnaire de dépendances externes pour Unity (EDM4U) .

      Le résolveur Unity Package Manager vous invite à ajouter le registre de packages de jeu de Google à votre projet. Sélectionnez le registre et cliquez sur le bouton Ajouter les registres sélectionnés .

      • EDM4U ajoute le registre à Packages/manifest.json sous votre dossier de projet Unity actuel.

      • Vous pouvez également ajouter manuellement ce registre plus tard en utilisant les options de menu Actifs > Gestionnaire de dépendances externes > Unity Package Manager Resolver > Ajouter des registres ou Fenêtre > Google > Registre de packages de jeu > Ajouter au projet .

  2. Migrez les packages Firebase et EDM4U existants importés via .unitypackage vers Unity Package Manager. Cela peut être fait par l'une des méthodes suivantes.

    • Une fois le registre ajouté par EDM4U, une boîte de dialogue intitulée «Migrating Packages» devrait apparaître. Cette boîte de dialogue répertorie tous les packages pouvant être installés via Unity Package Manager. Nous vous recommandons de les sélectionner tous et de cliquer sur le bouton Appliquer .

    • Vous pouvez également afficher manuellement cette boîte de dialogue ultérieurement à l'aide des options de menu Actifs > Gestionnaire de dépendances externes > Résolveur Unity Package Manager > Migrer les packages .

    • Vous pouvez également migrer manuellement tous les packages importés via .unitypackage en suivant les étapes suivantes.

      1. Supprimez à la fois le SDK Firebase Unity et EDM4U de votre dossier Assets . EDM4U fournit un outil pour désinstaller les packages gérés qui est accessible à l'aide de l'option de menu Assets > External Dependency Manager > Version Handler > Uninstall Managed Packages . Sélectionnez tous les SDK Firebase ainsi que External Dependency Manager et cliquez sur Désinstaller les packages sélectionnés .

        • Vous pouvez également supprimer manuellement le SDK du dossier Assets .
      2. Installez les composants du SDK Firebase Unity à l'aide du gestionnaire de packages Unity en sélectionnant Fenêtre > Gestionnaire de packages et en recherchant Firebase . Les composants du SDK Firebase Unity peuvent être installés, améliorés et supprimés via cette interface.

  3. Vous pouvez désormais explorer et installer tous les composants du SDK Firebase Unity ou les packages Google à l'aide du gestionnaire de packages Unity en sélectionnant Fenêtre > Gestionnaire de packages . Tous ces composants peuvent être installés, modifiés et supprimés via cette interface.

Installation manuelle

  1. Dans la console Firebase, cliquez sur Télécharger le SDK Firebase Unity , puis décompressez le SDK à un endroit pratique.

    • Vous pouvez télécharger à nouveau le SDK Firebase Unity à tout moment.

    • Le SDK Firebase Unity n'est pas spécifique à la plate-forme.

  2. Dans votre projet Unity ouvert, accédez à Assets > Importer un package > Package personnalisé .

  3. À partir du SDK décompressé, sélectionnez les produits Firebase pris en charge que vous souhaitez utiliser dans votre application.

    Analytics activé

    • Ajoutez le package Firebase pour Google Analytics: FirebaseAnalytics.unitypackage
    • Ajoutez les packages pour tous les autres produits Firebase que vous souhaitez utiliser dans votre application. Par exemple, pour utiliser l'authentification Firebase et la base de données Firebase Realtime:
      FirebaseAuth.unitypackage et FirebaseDatabase.unitypackage

    Analytics non activé

    Ajoutez les packages des produits Firebase que vous souhaitez utiliser dans votre application. Par exemple, pour utiliser l'authentification Firebase et la base de données Firebase Realtime:
    FirebaseAuth.unitypackage et FirebaseDatabase.unitypackage

  4. Dans la fenêtre Importer un package Unity , cliquez sur Importer .

  5. De retour dans la console Firebase, dans le workflow de configuration, cliquez sur Suivant .

Étape 5 : Confirmer les exigences de version des services Google Play

Le SDK Firebase Unity pour Android nécessite les services Google Play , qui doivent être à jour pour que le SDK puisse être utilisé.

Ajoutez le code suivant au démarrage de votre application. Vous pouvez rechercher et éventuellement mettre à jour les services Google Play vers la version requise par le SDK Firebase Unity avant d'appeler toute autre méthode du SDK.

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.
  }
});

Vous êtes prêt! Votre projet Unity est enregistré et configuré pour utiliser Firebase.

Problèmes connus

Compatibilité .NET lors de l'utilisation de Unity 2017.x et versions ultérieures

Firebase prend en charge .NET 4.x en tant qu'option de génération expérimentale dans Unity 2017 et versions ultérieures. Les plug-ins Firebase utilisent des composants du SDK Parse pour fournir certaines classes .NET 4.x dans les versions antérieures de .NET.

Par conséquent, la version 5.4.0 SDK Firebase Unity et les versions ultérieures fournissent des plugins compatibles avec .NET 3.x ou .NET 4.x dans les dotnet3 et dotnet4 du SDK Firebase Unity.

Si vous importez un plug-in Firebase incompatible avec la version .NET activée dans votre projet, vous verrez des erreurs de compilation de certains types dans le framework .NET qui sont implémentés par le SDK Parse.

Pour résoudre l'erreur de compilation, si vous utilisez .NET 3.x:

  1. Supprimez ou désactivez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Activez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Pour résoudre l'erreur de compilation, si vous utilisez .NET 4.x:

  1. Supprimez ou désactivez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Activez les DLL suivantes pour toutes les plates-formes:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Si vous importez un autre plugin Firebase:

  • Dans votre projet Unity, accédez à Assets > Play Services Resolver > Version Handler > Update pour activer les DLL appropriées pour votre projet.

Compilation d'IL2CPP Unity 2017.1 dans les projets .NET 4.x

Firebase prend en charge .NET 4.x en tant qu'option de génération expérimentale dans Unity 2017 et versions ultérieures. Les plug-ins Firebase utilisent des composants du SDK Parse pour fournir certaines classes .NET 4.x dans les versions antérieures de .NET.

Par conséquent, le SDK Firebase Unity version 5.4.0 et versions ultérieures fournit des DLL de transfert de type qui transfèrent les types Parse (par exemple, l'implémentation Parse de System.Threading.Tasks.Task ) au framework .NET. Malheureusement, IL2CPP (un transpilateur qui convertit C # en C ++) fourni dans Unity 2017.1.x ne traite pas correctement les DLL de transfert de type, ce qui entraîne des erreurs de construction semblables aux suivantes:

 Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>
 

Il n'existe actuellement aucune solution de contournement disponible pour les erreurs de génération .NET 4.x IL2CPP dans Unity 2017.1, vous devez donc mettre à niveau vers Unity 2017.2 ou version ultérieure pour utiliser .NET 4.x dans les projets compilés avec IL2CPP.

Réseau Unity 2017.2

Firebase Realtime Database crée des connexions réseau TLS à l'aide de la pile réseau .NET. La fonctionnalité TLS est interrompue dans Unity 2017.2 lors de l'utilisation de .NET 4.6, entraînant l'échec du plug-in Realtime Database dans les éditeurs et sur le bureau.

Il n'y a pas de solution de contournement pour ce problème, vous devez donc utiliser une version différente de Unity, par exemple la version 2017.1 ou 2017.3.

Fichier de configuration Android Firebase manquant dans Unity 2020.

Afin de prendre en charge les versions d'Unity qui n'ont pas la possibilité de personnaliser la version Gradle, l'outil d'édition Firebase génère Assets/Plugins/Android/Firebase/res/values/google-services.xml tant que ressource Android à conditionner dans un Version Android, afin que le SDK Firebase puisse l'utiliser pour initialiser l'instance FirebaseApp par défaut.

La fonctionnalité permettant d'inclure un fichier de ressources personnalisé est interrompue ou modifiée dans Unity 2020. Par conséquent, l'application ne pourra pas créer l'instance par défaut.

La solution de contournement consiste à ajouter manuellement la ressource à mainTemplate.gradle .

  1. Ouvrez les paramètres du lecteur dans Unity, qui se trouvent généralement dans l'option de menu Edition > Paramètres du projet ... > Lecteur .
  2. Recherchez l'option Custom Main Gradle Template sous Paramètres de publication et assurez-vous qu'elle est cochée.
  3. Ouvrez Assets/Plugins/Android/mainTemplate.gradle avec un éditeur de texte.
  4. Ajoutez le bloc suivant à mainTemplate.gradle .

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

Conflit d'installation lors de l'utilisation du gestionnaire de packages Unity

Un package peut être installé à partir de différentes sources. Par exemple, External Dependency Manager for Unity (EDM4U en abrégé, précédemment appelé Play Services Resolver ou Unity Jar Resolver) peut être installé de l'une des manières suivantes.

  • Importation du .unitypackage External Dependency Manager.
  • Importation du SDK Firebase ou d'un autre SDK contenant EDM4U dans leur .unitypackage .
  • Installation de External Dependency Manager via Unity Package Manager
  • Installation du SDK Firebase ou d'un autre SDK qui définit EDM4U comme sa dépendance via Unity Package Manager .

Lorsque EDM4U (ou Firebase) est installé via .unitypackage et via Unity Package Manager en même temps, il y a un conflit d'installation et Unity peut afficher une erreur concernant un conflit GUID ou un conflit de symboles. EDM4U n'offre actuellement pas de résolution pour de telles situations. Lorsque cela se produit, voici une solution de contournement:

  • Si vous avez déjà migré Firebase et EDM4U vers Unity Package Manager et que vous importez un autre SDK contenant EDM4U dans .unitypackage , par exemple, Google Ads ou Facebook SDK, vous pouvez simplement supprimer les dossiers Assets/ExternalDependencyManager et / ou Assets/PlayServicesResolver .
  • Si vous avez accidentellement installé EDM4U via Unity Package Manager avant de le supprimer du dossier Assets , procédez comme suit pour résoudre le conflit:
    1. Supprimez les dossiers Assets/ExternalDependencyManager et / ou Assets/PlayServicesResolver .
    2. Désinstaller tous les packages Firebase et EDM4U de Unity Package Manager
    3. Réinstallez tous les packages Firebase et EDM4U nécessaires à partir d'UPM.

Configurer un workflow de bureau ( bêta )

Lorsque vous créez un jeu, il est souvent beaucoup plus facile de tester d'abord votre jeu dans l'éditeur Unity et sur les plates-formes de bureau, puis de le déployer et de le tester sur des appareils mobiles plus tard dans le développement. Pour prendre en charge ce flux de travail, nous fournissons un sous - ensemble des SDK Firebase Unity qui peuvent s'exécuter sous Windows, macOS, Linux et à partir de l'éditeur Unity.

  1. Configurez un projet Unity de plate-forme de bureau en suivant les mêmes instructions que pour une plate-forme mobile (commencez par l'étape Enregistrer votre application auprès de Firebase ci-dessus.

  2. Exécutez votre projet Unity dans l'IDE Unity ou choisissez de créer votre projet Unity pour le bureau .

  3. (Facultatif) Exécutez votre projet Unity en mode d'édition.

    Le SDK Firebase Unity peut également être exécuté en mode d'édition d'Unity, permettant son utilisation dans les plugins d'éditeur.

    1. Lorsque vous créez une FirebaseApp utilisée par l'éditeur, n'utilisez pas l'instance par défaut.

    2. Au lieu de cela, fournissez un nom unique à l'appel FirebaseApp.Create() .

      Ceci est important pour éviter un conflit d'options entre l'instance utilisée par l'EDI Unity et l'instance utilisée par votre projet Unity.

Produits Firebase pris en charge

En savoir plus sur les bibliothèques Unity Firebase dans la documentation de référence .

Le SDK Firebase Unity prend en charge les produits Firebase suivants sur iOS et Android :

Produit Firebase Paquet Unity
AdMob Distribué séparément dans le plug-in AdMob Unity
Analytique FirebaseAnalytics.unitypackage
Authentification FirebaseAuth.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Fonctions cloud FirebaseFunctions.unitypackage
Messagerie cloud FirebaseMessaging.unitypackage
(recommandé) FirebaseAnalytics.unitypackage
Stockage en ligne FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(recommandé) FirebaseAnalytics.unitypackage
Liens dynamiques FirebaseDynamicLinks.unitypackage
(recommandé) FirebaseAnalytics.unitypackage
Base de données en temps réel FirebaseDatabase.unitypackage
Configuration à distance FirebaseRemoteConfig.unitypackage
(recommandé) FirebaseAnalytics.unitypackage

Produits Firebase pris en charge (bureau)

Le SDK Firebase Unity inclut la prise en charge du flux de travail de bureau pour un sous-ensemble de produits, permettant à certaines parties de Firebase d'être utilisées dans l'éditeur Unity et dans les versions de bureau autonomes sous Windows, macOS et Linux.

Produit Firebase (bureau) Paquet Unity
Authentification FirebaseAuth.unitypackage
Fonctions cloud FirebaseFunctions.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Stockage en ligne FirebaseStorage.unitypackage
Base de données en temps réel FirebaseDatabase.unitypackage
Configuration à distance FirebaseRemoteConfig.unitypackage

Firebase fournit les bibliothèques de bureau restantes sous forme d'implémentations stub (non fonctionnelles) pour plus de commodité lors de la création pour Windows, macOS et Linux. Par conséquent, vous n'avez pas besoin de compiler du code conditionnellement pour cibler le bureau.

Prochaines étapes