Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Aggiungi Firebase al tuo progetto Unity

Accendi i tuoi giochi Unity con i nostri SDK Firebase Unity.

Per mostrare quanto sia facile collegare Firebase al tuo progetto Unity, abbiamo realizzato un gioco di esempio, MechaHamster, che puoi scaricare da GitHub , dall'App Store e dal Google Play Store .

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Scopri ulteriori informazioni sull'accensione dei tuoi giochi con Firebase nella nostra pagina dei giochi di Firebase .

Hai già aggiunto Firebase al tuo progetto Unity? Assicurati di utilizzare la versione più recente di Firebase Unity SDK .

Prerequisiti

  • Installa Unity 5.3 o successivo.

  • (solo iOS) Installa quanto segue:

    • Xcode 9.4.1 o successivo
    • CocoaPods 1.4.0 o successivo
  • Assicurarsi che il progetto Unity soddisfi questi requisiti:

    • Per iOS : è destinato a iOS 8 o versioni successive
    • Per Android : ha come target il livello API 16 (Jelly Bean) o successivo
  • Configura un dispositivo fisico o usa un emulatore per eseguire la tua app.

    • Per iOS : configura un dispositivo iOS fisico o usa il simulatore iOS.

    • Per Android - Gli emulatori devono utilizzare un'immagine dell'emulatore con Google Play.

Se non hai già un progetto Unity e desideri semplicemente provare un prodotto Firebase, puoi scaricare uno dei nostri esempi di avvio rapido .

Passaggio 1 : creare un progetto Firebase

Prima di poter aggiungere Firebase al progetto Unity, è necessario creare un progetto Firebase per connettersi al progetto Unity. Visita Comprendi i progetti Firebase per ulteriori informazioni sui progetti Firebase.

Passaggio 2 : registra l'app con Firebase

Puoi registrare una o più app o giochi per connetterti al tuo progetto Firebase.

  1. Vai alla console di Firebase .

  2. Al centro della pagina di panoramica del progetto, fare clic sull'icona Unity ( ) per avviare il flusso di lavoro di installazione.

    Se hai già aggiunto un'app al tuo progetto Firebase, fai clic su Aggiungi app per visualizzare le opzioni della piattaforma.

  3. Seleziona quale target di costruzione del tuo progetto Unity desideri registrare, oppure puoi persino selezionare di registrare entrambi i target contemporaneamente.

  4. Immettere gli ID specifici della piattaforma del progetto Unity.

    • Per iOS : inserisci l'ID iOS del tuo progetto Unity nel campo ID bundle iOS .

    • Per Android : immettere l'ID Android del progetto Unity nel campo Nome pacchetto Android .
      I termini nome pacchetto e ID applicazione sono spesso usati in modo intercambiabile.

  5. (Facoltativo) Immettere i nickname specifici della piattaforma del progetto Unity.
    Questi soprannomi sono identificatori di convenienza interni e sono visibili solo a te nella console di Firebase.

  6. Fai clic su Registra app .

Passaggio 3 : aggiungere i file di configurazione di Firebase

  1. Ottieni i tuoi file di configurazione Firebase specifici della piattaforma nel flusso di lavoro di configurazione della console Firebase.

    • Per iOS : fai clic su Scarica GoogleService-Info.plist .

    • Per Android : fai clic su Scarica google-services.json .

  2. Aprire la finestra Progetto del progetto Unity, quindi spostare i file di configurazione nella cartella Assets .

  3. Di nuovo nella console di Firebase, nel flusso di lavoro dell'installazione, fai clic su Avanti .

Passaggio 4 : aggiungere SDK Firebase Unity

È possibile aggiungere prodotti Firebase supportati al progetto Unity utilizzando Unity Package Manager oppure è possibile installare manualmente gli SDK.

Unity Package Manager

Se si utilizza Unity 2018.4 o versioni successive e .NET 4.xo .NET Standard 2.0, è possibile installare i componenti Firebase SDK utilizzando Unity Package Manager:

  1. Aggiungi il registro dei pacchetti di giochi di Google al tuo progetto Unity.

    • Se non hai mai importato Firebase SDK ed EDM4U (precedentemente chiamato Play Services Resolver), puoi aggiungere manualmente il seguente blocco a Packages/manifest.json .

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

      Nota che alcuni altri SDK, come Facebook SDK, potrebbero contenere EDM4U nel loro .unitypackage . Controlla se esistono cartelle Assets/ExternalDependencyManager o Assets/PlayServicesResolver . Se esistono queste cartelle, rimuoverle prima di installare Firebase SDK tramite Unity Package Manager.

    • Se è necessario migrare un SDK esistente o preferire un metodo più interattivo, importare l'ultimo Dependency Manager esterno per Unity (EDM4U) .

      Il Resolver di Unity Package Manager ti chiederà di aggiungere il registro dei pacchetti di giochi di Google al tuo progetto. Seleziona il registro e fai clic sul pulsante Aggiungi registri selezionati .

      • EDM4U aggiunge il registro a Packages/manifest.json nella cartella del progetto Unity corrente.

      • È inoltre possibile aggiungere manualmente questo registro in un secondo momento utilizzando le opzioni di menu Risorse > Gestione dipendenze esterne > Risolutore Gestione pacchetti Unity > Aggiungi registri o Finestra > Google > Registro pacchetti giochi > Aggiungi al progetto .

  2. Migrare i pacchetti Firebase ed EDM4U in uscita importati tramite .unitypackage in Unity Package Manager. Questo può essere fatto con uno dei seguenti metodi.

    • Dopo che il registro è stato aggiunto da EDM4U, dovrebbe apparire una finestra di dialogo "Migrazione dei pacchetti". Questa finestra di dialogo elenca tutti i pacchetti disponibili per l'installazione tramite Unity Package Manager. Ti consigliamo di selezionarli tutti e di fare clic sul pulsante Applica .

    • È inoltre possibile visualizzare manualmente questa finestra di dialogo in un secondo momento utilizzando Risorse > Gestore dipendenze esterno > Risolutore Gestione pacchetti Unity > Opzioni di menu Migra pacchetti .

    • Puoi anche migrare manualmente tutti i pacchetti importati tramite .unitypackage con i seguenti passaggi.

      1. Rimuovi sia Firebase Unity SDK che EDM4U dalla cartella Assets . EDM4U fornisce uno strumento per disinstallare i pacchetti gestiti accessibile tramite il menu Risorse > Gestore dipendenze esterno > Gestore versione > Disinstalla pacchetti gestiti . Seleziona tutti gli SDK Firebase e il gestore dipendenze esterno e fai clic su Disinstalla pacchetti selezionati .

        • In alternativa, puoi anche rimuovere manualmente l'SDK dalla cartella Risorse .
      2. Installa i componenti Firebase Unity SDK usando Unity Package Manager selezionando Finestra > Package Manager e cercando Firebase . I componenti di Firebase Unity SDK possono essere installati, ugpradati e rimossi tramite questa interfaccia.

  3. Ora puoi esplorare e installare qualsiasi componente Firebase Unity SDK o pacchetti Google utilizzando Gestione pacchetti Unity selezionando Finestra > Gestione pacchetti . Tutti questi componenti possono essere installati, ugpradati e rimossi attraverso questa interfaccia.

Installazione manuale

  1. Nella console di Firebase, fare clic su Scarica Firebase Unity SDK , quindi decomprimere l'SDK in qualche luogo conveniente.

    • Puoi scaricare di nuovo Firebase Unity SDK in qualsiasi momento.

    • Firebase Unity SDK non è specifico per la piattaforma.

  2. Nel progetto Unity aperto, accedere a Risorse > Importa pacchetto > Pacchetto personalizzato .

  3. Dall'SDK decompresso, selezionare i prodotti Firebase supportati che si desidera utilizzare nella propria app.

    Analytics abilitato

    • Aggiungi il pacchetto Firebase per Google Analytics: FirebaseAnalytics.unitypackage
    • Aggiungi i pacchetti per tutti gli altri prodotti Firebase che desideri utilizzare nella tua app. Ad esempio, per utilizzare Firebase Authentication e Firebase Realtime Database:
      FirebaseAuth.unitypackage e FirebaseDatabase.unitypackage

    Analytics non abilitato

    Aggiungi i pacchetti per i prodotti Firebase che desideri utilizzare nella tua app. Ad esempio, per utilizzare Firebase Authentication e Firebase Realtime Database:
    FirebaseAuth.unitypackage e FirebaseDatabase.unitypackage

  4. Nella finestra Importa pacchetto Unity , fai clic su Importa .

  5. Di nuovo nella console di Firebase, nel flusso di lavoro dell'installazione, fai clic su Avanti .

Passaggio 5 : conferma i requisiti di versione dei servizi di Google Play

Firebase Unity SDK per Android richiede i servizi di Google Play , che devono essere aggiornati prima di poter utilizzare SDK.

Aggiungi il seguente codice all'inizio dell'applicazione. È possibile verificare e, facoltativamente, aggiornare i servizi di Google Play alla versione richiesta da Firebase Unity SDK prima di chiamare qualsiasi altro metodo nell'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.
  }
});

Sei pronto! Il progetto Unity è registrato e configurato per utilizzare Firebase.

Problemi noti

Compatibilità .NET quando si utilizza Unity 2017.xe versioni successive

Firebase supporta .NET 4.x come opzione di build sperimentale in Unity 2017 e versioni successive. I plug-in Firebase utilizzano componenti di Parse SDK per fornire alcune classi .NET 4.x nelle versioni precedenti di .NET.

Pertanto, Firebase Unity SDK versione 5.4.0 e successive fornisce plug-in compatibili con .NET 3.xo .NET 4.x nelle dotnet3 e dotnet4 di Firebase Unity SDK.

Se importi un plug-in Firebase incompatibile con la versione .NET abilitata nel tuo progetto, vedrai errori di compilazione di alcuni tipi nel framework .NET implementati da Parse SDK.

Per risolvere l'errore di compilazione, se si utilizza .NET 3.x:

  1. Rimuovere o disabilitare le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Abilitare le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Per risolvere l'errore di compilazione, se si utilizza .NET 4.x:

  1. Rimuovere o disabilitare le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Abilitare le seguenti DLL per tutte le piattaforme:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Se importi un altro plug-in Firebase:

  • Nel progetto Unity, accedere a Risorse > Play Resolver > Gestore versione > Aggiorna per abilitare le DLL corrette per il progetto.

Compilazione di Unity 2017.1 IL2CPP in progetti .NET 4.x.

Firebase supporta .NET 4.x come opzione di build sperimentale in Unity 2017 e versioni successive. I plug-in Firebase utilizzano componenti di Parse SDK per fornire alcune classi .NET 4.x nelle versioni precedenti di .NET.

Pertanto, Firebase Unity SDK versione 5.4.0 e successive fornisce DLL di inoltro dei tipi che inoltrano tipi Parse (ad esempio, l'implementazione Parse di System.Threading.Tasks.Task ) al framework .NET. Sfortunatamente, IL2CPP (un transpiler che converte C # in C ++) fornito in Unity 2017.1.x non elabora correttamente le DLL di inoltro dei tipi che si traducono in errori di compilazione simili al seguente:

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

Al momento non sono disponibili soluzioni alternative per errori di build IL2CPP di .NET 4.x in Unity 2017.1, quindi è necessario eseguire l'aggiornamento a Unity 2017.2 o versioni successive per utilizzare .NET 4.x nei progetti compilati con IL2CPP.

Rete di Unity 2017.2

Firebase Realtime Database crea connessioni di rete TLS utilizzando lo stack di rete .NET. La funzionalità TLS viene interrotta in Unity 2017.2 quando si utilizza .NET 4.6 causando il fallimento del plug-in Realtime Database negli editor e sul desktop.

Non esiste una soluzione alternativa per questo problema, quindi è necessario utilizzare una versione diversa di Unity, ad esempio la versione 2017.1 o 2017.3.

File di configurazione Android Firebase mancante in Unity 2020.

Per supportare le versioni di Unity che non hanno la possibilità di personalizzare la build Gradle, lo strumento dell'editor Firebase genera Assets/Plugins/Android/Firebase/res/values/google-services.xml come risorsa Android da impacchettare in un Build di Android, in modo che Firebase SDK possa utilizzarlo per inizializzare l'istanza di FirebaseApp predefinita.

La funzionalità per includere il file di risorse personalizzato viene interrotta o modificata in Unity 2020. Di conseguenza, l'app non sarà in grado di creare l'istanza predefinita.

Per risolvere il problema, aggiungere manualmente la risorsa a mainTemplate.gradle .

  1. Apri Impostazioni giocatore in Unity, che di solito puoi trovare nell'opzione di menu Modifica > Impostazioni progetto ... > Giocatore .
  2. Trova l'opzione Custom Main Gradle Template in Impostazioni pubblicazione e assicurati che sia selezionata.
  3. Apri Assets/Plugins/Android/mainTemplate.gradle con un editor di testo.
  4. Aggiungi il seguente blocco a mainTemplate.gradle .

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

Conflitto di installazione quando si utilizza Unity Package Manager

Un pacchetto può essere installato da diverse fonti. Ad esempio, External Dependency Manager for Unity (in breve EDM4U, precedentemente chiamato Play Services Resolver o Unity Jar Resolver) può essere installato in uno dei seguenti modi.

  • Importazione del gestore di dipendenze esterno .unitypackage .
  • Importazione di Firebase SDK o altro SDK che contiene EDM4U nel loro .unitypackage .
  • Installazione di External Dependency Manager tramite Unity Package Manager
  • Installazione di Firebase SDK o altro SDK che imposta EDM4U come dipendenza tramite Unity Package Manager .

Quando EDM4U (o Firebase) viene installato contemporaneamente tramite .unitypackage e Unity Package Manager , si verifica un conflitto di installazione e Unity può mostrare un errore relativo a un conflitto GUID o conflitto di simboli. EDM4U al momento non offre risoluzione per tali situazioni. Quando ciò accade, ecco una soluzione alternativa:

  • Se hai precedentemente migrato Firebase ed EDM4U su Unity Package Manager e hai importato un altro SDK contenente EDM4U in .unitypackage , ad esempio Google Ads o Facebook SDK, puoi semplicemente rimuovere le cartelle Assets/ExternalDependencyManager e / o Assets/PlayServicesResolver .
  • Se EDM4U è stato installato accidentalmente tramite Unity Package Manager prima di rimuoverlo dalla cartella Assets , utilizzare la seguente procedura per risolvere il conflitto:
    1. Rimuovere le cartelle Assets/ExternalDependencyManager e / o Assets/PlayServicesResolver .
    2. Disinstallare tutti i pacchetti Firebase ed EDM4U da Unity Package Manager
    3. Reinstallare tutti i pacchetti Firebase ed EDM4U necessari da UPM.

Configurare un flusso di lavoro desktop ( beta )

Quando si crea un gioco, spesso è molto più semplice testare il gioco nell'editor Unity e sulle piattaforme desktop, quindi distribuirlo e testarlo su dispositivi mobili successivamente nello sviluppo. Per supportare questo flusso di lavoro, forniamo un sottoinsieme degli SDK di Firebase Unity che può essere eseguito su Windows, macOS, Linux e dall'editor Unity.

  1. Imposta un progetto Unity per piattaforma desktop seguendo le stesse istruzioni di una piattaforma mobile (inizia con il passaggio precedente Registrare la tua app con Firebase .

  2. Esegui il tuo progetto Unity nell'IDE Unity o seleziona per creare il tuo progetto Unity per desktop .

  3. (Facoltativo) Esegui il progetto Unity in modalità Modifica.

    Firebase Unity SDK può anche essere eseguito nella modalità di modifica di Unity, consentendone l'utilizzo nei plugin dell'editor.

    1. Quando crei una FirebaseApp utilizzata dall'editor, non utilizzare l'istanza predefinita.

    2. Fornire invece un nome univoco alla chiamata FirebaseApp.Create() .

      Ciò è importante per evitare un conflitto di opzioni tra l'istanza utilizzata dall'IDE di Unity e l'istanza utilizzata dal progetto Unity.

Prodotti Firebase supportati

Ulteriori informazioni sulle librerie Unity Firebase nella documentazione di riferimento .

Firebase Unity SDK supporta i seguenti prodotti Firebase su iOS e Android :

Prodotto Firebase Pacchetto Unity
AdMob Distribuito separatamente nel plug-in UnM di AdMob
analitica FirebaseAnalytics.unitypackage
Autenticazione FirebaseAuth.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Funzioni cloud FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(consigliato) FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(consigliato) FirebaseAnalytics.unitypackage
Collegamenti dinamici FirebaseDynamicLinks.unitypackage
(consigliato) FirebaseAnalytics.unitypackage
Database in tempo reale FirebaseDatabase.unitypackage
Configurazione remota FirebaseRemoteConfig.unitypackage
(consigliato) FirebaseAnalytics.unitypackage

Prodotti Firebase supportati (desktop)

Firebase Unity SDK include il supporto del flusso di lavoro desktop per un sottoinsieme di prodotti, consentendo l'utilizzo di alcune parti di Firebase nell'editor Unity e nelle build desktop standalone su Windows, macOS e Linux.

Prodotto Firebase (desktop) Pacchetto Unity
Autenticazione FirebaseAuth.unitypackage
Funzioni cloud FirebaseFunctions.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Database in tempo reale FirebaseDatabase.unitypackage
Configurazione remota FirebaseRemoteConfig.unitypackage

Firebase fornisce le restanti librerie desktop come implementazioni stub (non funzionali) per comodità quando si costruisce per Windows, macOS e Linux. Pertanto, non è necessario compilare in modo condizionale il codice per indirizzare il desktop.

Prossimi passi