WWW.LoadFromCacheOrDownload

Cambiar al Manual
public static WWW LoadFromCacheOrDownload (string url, int version);
public static WWW LoadFromCacheOrDownload (string url, int version, uint crc);
public static WWW LoadFromCacheOrDownload (string url, Hash128 hash, uint crc);
public static WWW LoadFromCacheOrDownload (string url, CachedAssetBundle cachedBundle, uint crc);

Parámetros

urlLa URL para descargar el AssetBundle, si no está presente en caché. Debe ser '%' escapado.
versionVersió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.
hashHash128 which is used as the version of the AssetBundle.
cachedBundleA structure used to download a given version of AssetBundle to a customized cache path.

Analogous to the cachedAssetBundle parameter for UnityWebRequestAssetBundle.GetAssetBundle.</param>
crcUn 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é.

Cached AssetBundles are uniquely identified solely by the filename and version. All domain and path information in url is ignored by Caching. Since cached AssetBundles are identified by filename instead of the full URL, you can change the directory from where the asset bundle is downloaded at any time. This is useful for pushing out new versions of the game and ensuring that files are not cached incorrectly by the browser or by a CDN.

Usually using the filename of the AssetBundle to generate the cache path is fine. But if there are different AssetBundles with the same last file name, cache conflicts will happen. With CachedAssetBundle, users can use CachedAssetBundle.name to customized the cache path to avoid the cache conflicts. Users can also utilize this to organize the cache data structure.

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.

The CRC passed into this function is computed during Asset Bundle build time, see BuildPipeline.BuildAssetBundles.

Nota: URL debe ser '%' escaped.

using UnityEngine;
using System.Collections;

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

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

var asset = myLoadedAssetBundle.mainAsset; } } }