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


url キャッシュされていない場合にアセットバンドルをダウンロードするための URL。'%' は避けなければいけません。
version アセットバンドルのバージョン。以前に同じ version パラメーターでダウンロードを行っている場合、キャッシュされたデータをロードします。アプリケーションによってインクリメントされたバージョンをリクエストすることによって強制的に url から最新のアセットバンドルをキャッシングすることができます。
crc 非圧縮コンテンツの CRC-32 チェックサム。もしパラメーターが 0 出ない場合はコンテンツをロードする前にチェックサムの比較が行われ一致しない場合はエラーを返します。これはキャッシュされたデータのユーザーによる改竄や改悪、データの破損を避けるために利用されます。CRC が一致しない場合は Unity は再度ダウンロードを試みます。そして CRC がサーバー側で一致しない場合はエラーを返します。今の CRC 値がアセットバンドルに一致しているかはエラー内容から判断することができます。


WWW アセットバンドルのロード/ダウンロードが完了したときにデータにアクセスするための WWW インスタンスを返します。



LoadFromCacheOrDownload() must be used in place of "new WWW (url)" in order to utilize caching functionality.

Cached AssetBundles are uniquely identified solely by the filename and version number. 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.

If the cache folder does not have any space for caching additional files, LoadFromCacheOrDownload will iteratively delete the least-recently-used AssetBundles from the Cache until sufficient space is available to store the new AssetBundle. If making space is not possible (because the hard disk is full, or all files in the cache are currently in use), LoadFromCacheOrDownload() will bypass Caching and stream the file into memory like a normal "new WWW()" call.

Cached data can be stored in a compressed form depending on Caching.compressionEnabled value.

This function can only be used to access AssetBundles. No other types or content are cacheable.

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

Note: URL must be '%' escaped.

See Also: BuildPipeline.BuildAssetBundle, BuildPipeline.BuildStreamedSceneAssetBundle.

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; } }