Agrega Firebase a tu proyecto de Unityplat_iosplat_androidplat_unity

Mejora tus juegos de Unity con nuestros SDK de Firebase Unity.

Para demostrarte lo fácil que es integrar Firebase a tu proyecto de Unity, creamos “MechaHamster”, un juego de muestra que puedes descargar desde GitHub, App Store y Google Play Store.

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Obtén más información acerca de cómo mejorar tus juegos con Firebase en nuestra página de juegos de Firebase.

Paso 1: Configura tu entorno

  • Instala Unity 5.3 o una versión más reciente

  • (solo para iOS) Comprueba si tienes acceso a los siguientes recursos:

    • Xcode 9.4.1 o una versión más reciente
    • CocoaPods 1.4.0 o una versión más reciente
  • Asegúrate de que tu proyecto de Unity esté orientado al nivel de SO adecuado, según se indica a continuación:

    • iOS: orienta a iOS 8 o una versión más reciente
    • Android: orienta al nivel de API 16 (Jelly Bean) o una versión más reciente
  • Accede a un dispositivo o emulador para ejecutar tu proyecto de Unity.

    • iOS: Para Firebase Cloud Messaging, necesitarás los siguientes elementos:

      • Un dispositivo iOS físico
      • Un certificado APNS con notificaciones push habilitadas
    • Android: Los emuladores deben usar una imagen con Google Play.

  • Accede a Firebase con tu Cuenta de Google.

Si aún no tienes un proyecto de Unity y solo quieres probar uno de los servicios de Firebase, puedes descargar uno de nuestros ejemplos de inicio rápido.

Paso 2: Crea un proyecto de Firebase

Para poder agregar Firebase a tu proyecto Unity, debes crear un proyecto de Firebase y conectarlo al de Unity.

Para crear un proyecto de Firebase:

  1. Dirígete a Firebase console.

  2. Haz clic en Agregar proyecto, luego selecciona o ingresa un Nombre del proyecto.

    • Si hay un proyecto de Google existente asociado con tu app, selecciónalo desde el menú desplegable Nombre del proyecto.
    • Si no hay un proyecto de Google existente, ingresa un nuevo Nombre del proyecto.
  3. (Opcional) Edita el ID del proyecto.

    Firebase asignará de manera automática un ID único a tu proyecto de Firebase. Este identificador se muestra en los servicios de Firebase visibles de forma pública, por ejemplo:

    • URL predeterminada de Realtime Database: your-project-id.firebaseio.com
    • Nombre predeterminado del depósito de Cloud Storage: your-project-id.appspot.com
    • Subdominio predeterminado de Hosting: your-project-id.firebaseapp.com
  4. Sigue los pasos de configuración restantes y, luego, haz clic en Crear proyecto (o Agregar Firebase si usas un proyecto de Google existente).

Firebase aprovisiona los recursos para tu proyecto de forma automática. Este proceso suele tardar algunos minutos. Cuando finalice, verás la página de descripción general del proyecto en Firebase console.

Paso 3: Registra tu proyecto de Unity con el de Firebase

Puedes registrar una o más apps o juegos para conectarlos con tu proyecto de Firebase.

  1. Inicia el asistente de configuración de Unity en la página de descripción general del proyecto de Firebase.

  2. Selecciona qué destino de compilación de tu proyecto de Unity quieres registrar, o si quieres registrar ambos destinos, este es el momento de hacerlo.

  3. Ingresa el ID del proyecto de Unity específico de cada plataforma.

    1. Abre el proyecto en el IDE de Unity.

    2. Navega hasta Build Settings > iOS o Android > Player Settings > Other Settings.

      El ID del proyecto de Unity es el valor del Bundle Identifier (ID de ejemplo: com.yourcompany.unity-project-name)

    3. Ingresa los ID específicos de las plataformas en los campos correspondientes:

      • iOS: Ingresa el ID del proyecto de Unity para iOS en el campo del ID del paquete de iOS.

      • Android: Ingresa el ID del proyecto de Unity para Android en el campo del nombre del paquete de Android.

        • Normalmente, los términos ID de la aplicación y nombre del paquete se utilizan de manera intercambiable.
  4. (Opcional) Ingresa el sobrenombre específico de cada plataforma para tu proyecto de Unity.

    Los sobrenombres son identificadores internos y convenientes que solo tú puedes ver en Firebase console.

  5. Haz clic en Registrar app.

Paso 4: Agrega archivos de configuración de Firebase a tu proyecto de Unity

  1. Usa el asistente de configuración de Firebase console para obtener los archivos de configuración de Firebase específicos de las plataformas.

  2. Abre la ventana Project de tu proyecto de Unity y transfiere a la carpeta Assets el archivo de configuración que descargaste.

  3. Vuelve al diálogo del asistente de configuración de Firebase console y haz clic en Siguiente.

Paso 5: Agrega un SDK de Firebase a tu proyecto de Unity

Los pasos que se indican en esta sección sirven de ejemplo para agregar cualquier servicio compatible con Firebase a un proyecto de Unity. En este, se explica cómo agregar Google Analytics para Firebase.

  1. En Firebase console, haz clic en Descargar el SDK de Firebase Unity, y luego descomprímelo en el lugar que prefieras.

    • Puedes volver a descargar el SDK de Firebase Unity cuando quieras.

    • El SDK de Firebase Unity no es específico para cada plataforma.

  2. Abre tu proyecto de Unity, ve a Elementos > Importar paquete > Paquete personalizado.

  3. En el SDK que descomprimiste, selecciona Importar el SDK de Analytics (FirebaseAnalytics.unitypackage).

    Puedes también importar cualquier otro servicio de Firebase admitido.

  4. En la ventana Importar paquete de Unity, haz clic en Importar.

  5. Vuelve al diálogo del asistente de configuración de Firebase console y haz clic en Siguiente.

Paso 6: Confirma los requisitos de la versión de Servicios de Google Play

El SDK de Firebase Unity en Android requiere los Servicios de Google Play actualizados para poder usarlo.

Se debe agregar el siguiente código al inicio de la aplicación. Puedes buscar los Servicios de Google Play y, de forma opcional, actualizarlos a la versión que requiera el SDK de Firebase Unity. De esta manera, es posible llamar a otros métodos en el 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.
  }
});

¡Listo! El proyecto de Unity se registró y configuró para que use los servicios de Firebase.

Problemas conocidos

Compatibilidad de .NET con Unity 2017.x y versiones posteriores

En Unity 2017 y versiones posteriores, Firebase admite .NET 4.x como opción de compilación experimental. Los complementos de Firebase usan componentes del SDK de Parse para proporcionar algunas clases de .NET 4.x en versiones anteriores de .NET.

Por lo tanto, el SDK de Firebase Unity en su versión 5.4.0, y versiones posteriores, proporciona complementos compatibles con .NET 3.x o .NET 4.x en sus directorios dotnet3 y dotnet4.

Cuando importes un complemento de Firebase que no sea compatible con la versión de .NET habilitada en tu proyecto, verás errores de compilación en algunos tipos de .NET framework que implementa el SDK de Parse.

Sigue estos pasos para solucionar el error de compilación si usas .NET 3.x:

  1. Quita o inhabilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Habilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Sigue estos pasos para solucionar el error de compilación si usas .NET 4.x:

  1. Quita o inhabilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Habilita los siguientes DLL para todas las plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Si importas otro complemento de Firebase, haz lo siguiente:

  • En el proyecto de Unity, navega hasta Assets > Play Services Resolver > Version Handler > Update a fin de habilitar los DLL correctos del proyecto.

Compilación Unity 2017.1 IL2CPP en proyectos .NET 4.x

En Unity 2017 y versiones posteriores, Firebase admite .NET 4.x como opción de compilación experimental. Los complementos de Firebase usan componentes del SDK de Parse para proporcionar algunas clases de .NET 4.x en versiones anteriores de .NET.

Por lo tanto, el SDK de Firebase Unity en su versión 5.4.0, y sus versiones posteriores, proporciona DLL de desvío que desvían los tipos Parse (por ejemplo, implementación Parse de System.Threading.Tasks.Task) a .NET Framework. Lamentablemente, el IL2CPP (transpilador que convierte C# a C++) que incluye Unity 2017.1.x no procesa correctamente los DLL de desvío de tipos, lo que genera errores de compilación como el siguiente:

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

Todavía no hay una solución alternativa para los errores de compilación de .NET 4.x IL2CPP en Unity 2017.1., por lo que debes actualizar a Unity 2017.2 o una versión posterior a fin de usar .NET 4.x en los proyectos compilados con IL2CPP.

Herramientas de redes de Unity 2017.2

Firebase Realtime Database crea conexiones de red TLS con la pila de herramientas de redes de .NET. La función TLS presenta errores en Unity 2017.2 cuando se usa .NET 4.6, lo que causa que el complemento de Realtime Database falle en editores y en computadoras de escritorio.

No hay una solución alternativa para este problema, por lo que debes usar una versión diferente de Unity, como 2017.1 o 2017.3.

Configura un flujo de trabajo para computadoras de escritorio (Beta)

Cuando creas un juego, suele ser más fácil probarlo en el editor de Unity y en plataformas de escritorio antes de implementarla y probarla en dispositivos móviles en una etapa posterior del desarrollo. Para admitir este flujo de trabajo, proporcionamos un subconjunto del SDK de Firebase Unity que se puede ejecutar en Windows, OS X, Linux y desde dentro del editor de Unity:

  1. Para configurar un proyecto de Unity en plataformas de escritorio sigue las mismas instrucciones de las plataformas móviles (comienza con el paso Registra tu proyecto de Unity con el de Firebase).

  2. Ejecuta el proyecto de Unity en su IDE, o bien realiza la compilación para computadoras de escritorio.

  3. (Opcional) Ejecuta el proyecto de Unity en el modo de edición.

    El SDK de Firebase Unity también se puede ejecutar en el modo de edición de Unity, lo que te permite usarlo en complementos del editor.

    1. Cuando crees una FirebaseApp a fin de que la use el editor, no uses la instancia predeterminada.

    2. En su lugar, proporciona un nombre único para la llamada FirebaseApp.Create().

      Esto es importante para evitar conflictos en las opciones entre la instancia que usa el IDE de Unity y la instancia que usa tu proyecto de Unity.

Servicios de Firebase admitidos

El SDK de Firebase Unity admite los siguientes servicios de Firebase en iOS y Android:

Servicio de Firebase Paquete de Unity
AdMob Se distribuye por separado en el Complemento AdMob Unity
Analytics FirebaseAnalytics.unitypackage
Authentication FirebaseAuth.unitypackage
Crashlytics (versión Beta) FirebaseCrashlytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Invites FirebaseInvites.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
Cloud Storage FirebaseStorage.unitypackage

Servicios de Firebase admitidos (computadoras de escritorio)

El SDK de Firebase Unity incluye compatibilidad con flujos de trabajo de escritorio para un subconjunto de funciones, lo que permite usar ciertas partes de Firebase en el editor de Unity y en compilaciones independientes para computadoras de escritorio en Windows, OS X y Linux.

Función para computadoras de escritorio Biblioteca
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Remote Config FirebaseRemoteConfig.unitypackage
Cloud Storage FirebaseStorage.unitypackage

Las bibliotecas de escritorio restantes son implementaciones auxiliares (no funcionales) que Firebase proporciona a fin de realizar compilaciones para Windows, SO X y Linux. Por lo tanto, no es necesario que compiles código de manera condicional orientado a la versión para computadoras de escritorio.

Asistencia

Asistencia de Firebase

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.