Important note: The AssetBundle Manager is deprecated for Unity versions 2018.2 and higher. It is no longer available from the Asset Store, but you can still download it from the AssetBundleDemo Bitbucket repository. If you use Unity version 2018.2 or higher, see documentation for Addressable Assets.
Al usar AssetBundles, puede asignar cualquier asset a cualquier bundle (paquete) que desee. Sin embargo, hay ciertas estrategias a considerar al configurar sus bundles (paquetes). Estas estrategias de agrupación están destinadas a ser utilizadas de la manera que mejor se adapten a su proyecto específico. Siéntase libre de mezclar y combinar estas estrategias como mejor le parezca.
El Logical Entity Grouping (agrupamiento de entidades lógicas) es donde se asignan los assets a los AssetBundles basándose en la parte funcional del proyecto que representan. Esto incluye secciones tales como la interfaz de usuario, los personajes, los entornos y cualquier otra cosa que pueda aparecer con frecuencia a lo largo de la vida útil de la aplicación.
El Logical Entity Grouping es ideal para contenido descargable (DLC) por el hecho de que, si todo está separado de esta manera, puede realizar un cambio en una sola entidad y no requerir la descarga de assets adicionales sin cambios.
El mayor truco para poder implementar correctamente esta estrategia es que el desarrollador que asigna los assets a sus respectivos paquetes debe estar familiarizado con el momento y el lugar preciso en que el proyecto utilizará cada uno de estos assets.
Para esta estrategia, asignará assets de un tipo similar, como pistas de audio o archivos de localización de idioma, a un solo AssetBundle.
El Type Grouping (agrupación por tipos) es una de las mejores estrategias para crear AssetBundles paravarias plataformas. Por ejemplo, si sus ajustes de compresión de audio son idénticos entre plataformas Windows y Mac, puede empaquetar todos los datos de audio en AssetBundles y reutilizarlos, mientras que los shaders tienden a compilarse con opciones específicas de plataforma, por lo que un bundle (paquete) de shader que compile para mac, pueda no ser reutilizado en windows. Además, este método es ideal para hacer que sus AssetBundles sean compatibles con más versiones de Unity ya que los formatos de compresión de texturas y las configuraciones cambian con menos frecuencia que algo así como los scripts de código o prefabs.
El Concurrent Content Grouping es la idea de que agrupará assets que se cargan y se usan al mismo tiempo. Podría pensar que este tipo de bundles (paquetes) se usa para un nivel de un juego en el que cada nivel contiene personajes, texturas, música, etc. totalmente únicos. Debe estar absolutamente seguro de que un asset en uno de estos AssetBundles solo se usará al mismo tiempo que el resto de los assets en ese bundle (paquete). Tener una dependencia de un solo assetdentro de un paquete de Concurrent Content Grouping resultaría en tiempos de carga significativamente mayores. Se verá obligado a descargar todo el paquete para ese único asset.
El caso de uso más común para bundles (paquetes) Concurrent Content Grouping es para paquetes que están basados en escenas. En esta estrategia de asignación, cada paquete de escena debe contener la mayoría o todas las dependencias de escena.
Tenga en cuenta que un proyecto puede y debe combinar estas estrategias según sus necesidades. El uso de la estrategia óptima de asignación de assets para cualquier escenario dado aumenta la eficiencia de cualquier proyecto.
Por ejemplo, un proyecto puede decidir agrupar sus elementos de interfaz de usuario (IU) para diferentes plataformas en su propio paquete específico de plataforma-IU, pero agrupa su contenido interactivo por nivel/escena.
Independientemente de la estrategia que siga, estos son algunos consejos adicionales que debe tener en cuenta en todos los ámbitos: