Version: 5.3 (switch to 5.4b)
언어English
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

WWW.LoadFromCacheOrDownload

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

닫기

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

닫기

취소

Switch to Manual
public static function LoadFromCacheOrDownload(url: string, version: int, crc: uint = 0): WWW;
public static WWW LoadFromCacheOrDownload(string url, int version, uint crc = 0);
public static function LoadFromCacheOrDownload(url: string, version: int, crc: uint = 0): WWW;
public static WWW LoadFromCacheOrDownload(string url, int version, uint crc = 0);

파라미터

url The URL to download the AssetBundle from, if it is not present in the cache. Must be '%' escaped.
version Version of the AssetBundle. The file will only be loaded from the disk cache if it has previously been downloaded with the same version parameter. By incrementing the version number requested by your application, you can force Caching to download a new copy of the AssetBundle from url.
crc An optional CRC-32 Checksum of the uncompressed contents. If this is non-zero, then the content will be compared against the checksum before loading it, and give an error if it does not match. You can use this to avoid data corruption from bad downloads or users tampering with the cached files on disk. If the CRC does not match, Unity will try to redownload the data, and if the CRC on the server does not match it will fail with an error. Look at the error string returned to see the correct CRC value to use for an AssetBundle.

Returns

WWW A WWW instance, which can be used to access the data once the load/download operation is completed.

Description

캐시에서 지정된 버전 번호 AssetBundle을 로드합니다. AssetBundle이 현재 캐시되지 않았으면 추후 로컬 저장소에서의 검색을 위해 캐시에 자동으로 다운로드하여 저장됩니다.

LoadFromCacheOrDownload()는 캐싱기능을 사용하기 위해 "new WWW (url)" 대신에 사용되어야 합니다.

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. For WebPlayer applications that use the shared cache, Caching adds unique identifying information to identically-named AssetBundles in order to prevent name collisions between applications.

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.

function Start () {
	var www = WWW.LoadFromCacheOrDownload ("http://myserver.com/myassetBundle.unity3d", 5);

yield www;

if (!String.IsNullOrEmpty(www.error)) { Debug.Log (www.error); return; } var myLoadedAssetBundle = www.assetBundle;

var asset = myLoadedAssetBundle.mainAsset; }
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.