Version: 5.4
Incluyendo scripts en AssetBundles
AssetBundles PF (Preguntas Frecuentes)

Optimizando búsquedas con AssetBundles

Unity serializa los datos para que sean leídos linealmente cuando un juego carga. Esto corta el número de búsquedas en unidades de disco duro de disco duro lento (HDD). Es poco probable que tenga un efecto en las unidades de estado sólido (SSD).

Los datos de una escena (el archivo sceneN y el archivo sharedassetsN.assets) se ordena por tipo de objeto. Esto toma en cuenta las dependencias de tipo (como Assets, ScriptableObjects, y MonoBehaviours). Durante la carga de la escena, todos los assets de la escena primero se cargan secuencialmente juntos, luego los objetos de lectura de escena se cargan linealmente. Lo mismo aplica a los AssetBundles de escena, que contienen el mismo paquetes de datos en un solo archivo.

Los Assets de AssetBundles no de escena (que esencialmente representan un solo archivo sharedassets.assets) son serializados de la misma manera que los AssetBundles de escena, pero el patrón de carga se define por el uso de API de carga de asset de AssetBundles. Podrían no cargarse todos juntos a la vez después de la carga del AssetBundle, significando que podrían leerse en un patrón de acceso aleatorio.

Cuando cargue Assets de un AssetBundle normal, Unity crea una lista de todas las dependencias y las cargas en el orden que son almacenados en el archivo.

Comportamiento para tener en cuenta

  • Algunas funciones de carga asincrónica (como el streaming de audio y la carga de Texturas asincrónicas) pueden romper el patrón de lectura linea, incluso para las Escenas.

  • Para AssetBundles dependientes, incluso AssetBundle.LoadAllAssets no garantiza un acceso lineal, ya que puede haber recursos dependientes de otros bundles. Para minimizar las búsquedas de disco, todos los AssetBundles deben estar cargados con el API AssetBundle.LoadAllAssets.

  • DeterministicAssetBundles no destruye la lectura lineal y no cambia el orden de ordenamiento del tipo, pero si retiene la posición del objeto dentro de un cierto rango de tipo.

  • Los AssetBundles con compresión basado en trozos (también conocido como compresión LZ4) no destruye la lectura lineal, pero puede afectar la granularidad de la lectura. Para más información, mirar la página de Asset Bundle Compression del Manual de Unity.

Incluyendo scripts en AssetBundles
AssetBundles PF (Preguntas Frecuentes)