Version: 5.5

WWW.LoadFromCacheOrDownload

Cambiar al Manual
public static WWW LoadFromCacheOrDownload (string url, int version, uint crc= 0);

Parámetros

url La URL para descargar el AssetBundle, si no está presente en caché. Debe ser '%' escapado.
version Versión del AssetBundle. El archivo sólo se cargará desde la caché de disco si previamente se ha descargado con el mismo parámetro de version. Al incrementar el número de versión solicitado por su aplicación, puede forzar el almacenamiento en caché para descargar una nueva copia del AssetBundle desde el url.
crc Un CRC-32 Checksum opcional de contenido sin comprimir. Si esto es distinto de cero, entonces el contenido se comparará con el checksum antes de cargarlo y dará un error si no coincide. Puede utilizarlo para evitar la corrupción de datos de descargas incorrectas o los usuarios que alteran los archivos almacenados en caché en el disco. Si el CRC no coincide, Unity intentará volver a cargar los datos, y si el CRC en el servidor no coincide, fallará con un error. Observe el string de error devuelto para ver el valor CRC correcto que se debe utilizar para un AssetBundle.

Valor de retorno

WWW Una instancia WWW, que puede ser utilizada para acceder a los datos una vez que la operación de carga/descarga se haya completado.

Descripción

Carga un AssetBundle con el número de versión especificado desde caché. Si el AssetBundle no está actualmente en caché, automáticamente será descargada y almacenado en caché para su recuperación en el futuro desde almacenamiento local.

LoadFromCacheOrDownload() se debe utilizar en lugar de "new WWW (url)" para utilizar la funcionalidad de caché.

Los AssetBundles almacenados en caché se identifican únicamente con el nombre de archivo y el número de versión. Toda la información de dominio y ruta en url es ignorada por Caching. Dado que los AssetBundles en caché se identifican por nombre de archivo en lugar de por la URL completa, puede cambiar el directorio desde el que se descarga el paquete de assets en cualquier momento. Esto es útil para sacar versiones nuevas del juego y asegurarse de que los archivos no están almacenados en caché incorrectamente por el navegador o por un CDN.

Si la carpeta de caché no tiene espacio para almacenar en caché archivos adicionales, LoadFromCacheOrDownload eliminará de forma iterativa los AssetBundles utilizados menos recientemente del caché hasta que haya suficiente espacio disponible para almacenar el nuevo AssetBundle. Si no es posible hacer espacio (ya que el disco duro está lleno, o todos los archivos de caché están actualmente en uso), LoadFromCacheOrDownload() omitirá el almacenamiento en caché y transmitirá el archivo a la memoria como una llamada normal "nueva WWW ()".

Los datos en caché se pueden almacenar en una forma comprimida dependiendo del valor Caching.compressionEnabled.

Esta función solo puede utilizarse para acceder AssetBundles. No otros tipos o contenido son cachéables.

El CRC pasado a esta función se calcula durante el tiempo de construcción del paquete de assets, mire BuildPipeline.BuildAssetBundle.

Nota: URL debe ser '%' escaped.

using UnityEngine;
using System.Collections;

public class LoadFromCacheOrDownloadExample : MonoBehaviour { IEnumerator Start() { while (!Caching.ready) yield return null;

var www = WWW.LoadFromCacheOrDownload("http://myserver.com/myassetBundle.unity3d", 5); yield return www; if (!string.IsNullOrEmpty(www.error)) { Debug.Log(www.error); yield return; } var myLoadedAssetBundle = www.assetBundle;

var asset = myLoadedAssetBundle.mainAsset; } }

See Also: BuildPipeline.BuildAssetBundle, BuildPipeline.BuildStreamedSceneAssetBundle.