Cómo integrar Asset Delivery (Unity)

Cuando integres la función de Asset Delivery, los juegos de Unity podrán acceder a paquetes de recursos usando Addressables o archivos AssetBundle. Los Addressables son la solución de entrega de recursos más reciente y recomendada para juegos compilados con Unity 2019.4 o versiones posteriores, mientras que los AssetBundles brindan compatibilidad con paquetes de recursos en Unity 2017.4 y 2018.4.

Addressables de Unity

Los juegos compilados con Unity 2019.4 o versiones posteriores deben usar Addressables para la entrega de recursos en Android. Unity ofrece una API de Play Asset Delivery (PAD) para controlar los paquetes de recursos de Android usando Addressables. Si quieres obtener más información para usar Addressables, consulta lo siguiente:

Cómo usar archivos AssetBundle

Los juegos compilados con Unity 2017.4 y 2018.4 pueden usar archivos AssetBundle para entregar recursos en Android. Los archivos AssetBundle de Unity contienen recursos serializados que el motor de Unity puede cargar mientras se ejecuta la app. Esos archivos son específicos de cada plataforma (por ejemplo, compilados para Android) y se pueden usar junto con paquetes de recursos. Por lo general, se empaqueta un archivo AssetBundle en un solo paquete de recursos con el mismo nombre que el archivo AssetBundle. Si quieres más flexibilidad para crear un paquete de recursos, configúralo con la API.

Durante el tiempo de ejecución, usa la clase Play Asset Delivery para Unity para recuperar un archivo AssetBundle incluido en un paquete de recursos.

Requisitos previos

  1. Configura tu entorno de desarrollo:

OpenUPM-CLI

Si tienes instalada la CLI de OpenUPM, puedes instalar el registro de OpenUPM con el siguiente comando:

openupm add com.google.play.assetdelivery

OpenUPM

  1. Abre la configuración del administrador de paquetes seleccionando la opción del menú de Unity: Edit > Project Settings > Package Manager.

  2. Agrega OpenUPM como un registro con permisos en la ventana de Package Manager:

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.assetdelivery
      com.google.android.appbundle
    
  3. Abre el menú del administrador de paquetes seleccionando la opción del menú de Unity: Window > Package Manager.

  4. Establece el menú desplegable de permisos del administrador en My Registries.

  5. Selecciona el paquete Google Play Integrity plugin for Unity en la lista de paquetes y presiona Install.

Importar desde GitHub

  1. Descarga la versión más reciente de .unitypackage desde GitHub.

  2. Importa el archivo .unitypackage. Para ello, selecciona Assets > Import package > Custom Package en el menú de Unity y, luego, importa todos los elementos.

  1. Crea archivos AssetBundle en Unity.

Cómo configurar archivos AssetBundle con la IU

  1. Configura cada archivo AssetBundle en un paquete de recursos:

    1. Selecciona Google > Android App Bundle > Asset Delivery Settings.
    2. Para seleccionar carpetas que contengan directamente archivos AssetBundle, haz clic en Add Folder.

    Botón Add Folder de Asset Delivery Settings en Unity

  2. Para cada paquete, cambia el modo de entrega en Delivery Mode a Install Time, Fast Follow u On Demand. Resuelve los errores o dependencias, y cierra la ventana.

    Selector del modo de entrega de Asset Delivery por paquete en Unity

  3. Selecciona Google > Build Android App Bundle para compilar el paquete de aplicación.

  4. Opcional: Configura el paquete de aplicación para que sea compatible con diferentes formatos de compresión de texturas.

Cómo configurar paquetes de recursos con la API

Puedes configurar Asset Delivery a través de secuencias de comandos del editor, que se pueden ejecutar como parte de un sistema de compilación automatizado.

Usa la clase AssetPackConfig para definir qué recursos incluirás en una compilación de Android App Bundle y el modo de entrega de los recursos. Esos paquetes de recursos no necesitan contener un AssetBundle.

public void ConfigureAssetPacks {
   // Creates an AssetPackConfig with a single asset pack, named
   // examplePackName, containing all the files in path/to/exampleFolder.
   var assetPackConfig = new AssetPackConfig();
   assetPackConfig.AddAssetsFolder("examplePackName",
                                   "path/to/exampleFolder",
                                   AssetPackDeliveryMode.OnDemand);

   // Configures the build system to use the newly created assetPackConfig when
   // calling Google > Build and Run or Google > Build Android App Bundle.
   AssetPackConfigSerializer.SaveConfig(assetPackConfig);

   // Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
   BuildBundle(new buildPlayerOptions(), assetPackConfig);
}

También puedes usar el método estático BuildBundle en la clase Bundletool para generar un Android App Bundle con paquetes de recursos, dadas BuildPlayerOptions y AssetPackConfig.

Si deseas obtener un instructivo guiado, consulta Cómo usar Play Asset Delivery en el Codelab de juegos de Unity.

Cómo realizar la integración con la API de Play Asset Delivery

La API de Unity de Play Asset Delivery proporciona la funcionalidad para solicitar paquetes de recursos, administrar descargas y acceder a los recursos. Asegúrate de primero agregar el complemento para Unity a tu proyecto.

Las funciones que usas en la API dependen de cómo creaste los paquetes de recursos.

Si creaste paquetes de recursos con la IU del complemento, selecciona Paquetes de recursos configurados por complementos.

Si creaste paquetes de recursos con la API (o la IU del complemento), selecciona Paquetes de recursos configurados por API.

Próximos pasos

Prueba la entrega de recursos de forma local y desde Google Play.