Version: 2019.4
AssetBundle compression
Solución de problemas

Patching con AssetBundles

Patching AssetBundles es tan simple como descargar un nuevo AssetBundle y reemplazar el existente. Si WWW.LoadFromCacheOrDownload oUnityWebRequest se usan para administrar los AssetBundles en caché de una aplicación, al pasar un parámetro de versión diferente a la API elegida se activará una descarga de los nuevos AssetBundles.

El problema más difícil de resolver en el sistema de parches es detectar qué AssetBundles reemplazar. Un sistema de parches requiere dos listas de información:

  • Una lista de los AssetBundles actualmente descargados, y su información de versión
  • Una lista de los AssetBundles en el servidor y su información de versión

El parche debería descargar la lista de AssetBundles del lado del servidor y comparar las listas de AssetBundle. Los paquetes de AssetBundles perdidos, o los AssetBundles cuya información de versionado ha cambiado, se deben volver a descargar.

También es posible escribir un sistema personalizado para detectar cambios en AssetBundles. La mayoría de los desarrolladores que escriben su propio sistema eligen utilizar un formato de datos estándar de la industria para sus listas de archivos AssetBundle, como JSON, y una clase C # estándar para calcular sumas de comprobación, como MD5.

Unity construye AssetBundles con datos ordenados de manera determinista. Esto permite que las aplicaciones con descargadores personalizados implementen parches diferenciales.

Unity no proporciona ningún mecanismo incorporado para el parcheo diferencial y ni WWW.LoadFromCacheOrDownload niUnityWebRequest realizan parches diferenciales cuando se utiliza el sistema incorporado de almacenamiento en caché. Si el parche diferencial es un requisito, entonces se debe escribir un descargador personalizado.

AssetBundle compression
Solución de problemas