Version: 2023.2

DownloadHandlerAssetBundleConstructor

切换到手册
public DownloadHandlerAssetBundle (string url, uint crc);

参数

url 资源捆绑包所在的名义上的(预重定向)URL。
crc 校验和,用于与下载的数据做比较以进行完整性检查;当此参数为零时,将跳过完整性检查。

描述

用于非缓存资源捆绑包的标准构造函数。

此构造函数将绕过缓存系统,直接从 url 下载 AssetBundle

如果 crc 参数不是零,则 crc 参数将与下载的数据的校验和做比较。如果 CRC 不匹配,系统将记录一个错误且不加载资源捆绑包,assetBundle 将返回 null

如果不想使用 CRC 完整性检查,可将 crc 参数设置为零。

using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class Example : MonoBehaviour { IEnumerator Start() { string url = "https://website.com/assetbundle"; using (var uwr = new UnityWebRequest(url, UnityWebRequest.kHttpVerbGET)) { uwr.downloadHandler = new DownloadHandlerAssetBundle(url, 0); yield return uwr.SendWebRequest(); AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(uwr); } } }

public DownloadHandlerAssetBundle (string url, uint version, uint crc);

参数

url 资源捆绑包所在的名义上的(预重定向)URL。
crc 校验和,用于与下载的数据做比较以进行完整性检查;当此参数为零时,将跳过完整性检查。
version 资源捆绑包在 url 的当前版本号。版本号在重复下载时增加。

描述

简单的版本控制构造函数。缓存下载的资源捆绑包。

使用此构造函数时,DownloadHandlerAssetBundle 将首先检查是否有来自 url 的缓存 AssetBundle

如果没有缓存的资源捆绑包,或者如果缓存的资源捆绑包的 versionversion 参数相匹配,则系统将跳过下载此资源捆绑包,改为从缓存中加载它。

如果有缓存的资源捆绑包,但缓存捆绑包的 versionversion 参数不匹配,则系统将从 url 重新下载此资源捆绑包。

如果 crc 参数不是零,则 crc 参数将与下载的数据的校验和做比较。如果 CRC 不匹配,系统将记录一个错误且不加载资源捆绑包,assetBundle 将返回 null

如果不想使用 CRC 完整性检查,可将 crc 参数设置为零。


public DownloadHandlerAssetBundle (string url, Hash128 hash, uint crc);

参数

url 资源捆绑包所在的名义上的(预重定向)URL。
crc 校验和,用于与下载的数据做比较以进行完整性检查;当此参数为零时,将跳过完整性检查。
hash 用于定义资源捆绑包版本的哈希对象。

描述

版本控制构造函数。缓存下载的资源捆绑包。

使用此构造函数时,DownloadHandlerAssetBundle 将首先检查是否有来自 url 的缓存 AssetBundle

如果没有缓存的资源捆绑包,或者如果缓存的资源捆绑包的 hashhash 参数相匹配,则系统将跳过下载此资源捆绑包,改为从缓存中加载它。

如果有缓存的资源捆绑包,但缓存捆绑包的 hashhash 参数不匹配,则系统将从 url 重新下载此资源捆绑包。

如果 crc 参数不是零,则 crc 参数将与下载的数据的校验和做比较。如果 CRC 不匹配,系统将记录一个错误且不加载资源捆绑包,assetBundle 将返回 null

如果不想使用 CRC 完整性检查,可将 crc 参数设置为零。


public DownloadHandlerAssetBundle (string url, string name, Hash128 hash, uint crc);
public DownloadHandlerAssetBundle (string url, CachedAssetBundle cachedBundle, uint crc);

参数

url 资源捆绑包所在的名义上的(预重定向)URL。
hash 用于定义资源捆绑包版本的哈希对象。
crc 校验和,用于与下载的数据做比较以进行完整性检查;当此参数为零时,将跳过完整性检查。
cachedBundle 用于将给定版本的资源捆绑包下载到自定义缓存路径的结构。
name 用作自定义缓存路径的 AssetBundle 名称。

描述

版本控制构造函数。缓存将资源包下载到自定义的缓存路径。

缓存的资源包仅由文件名和版本唯一标识。缓存过程将忽略 url 中的所有域和路径信息。由于缓存的资源捆绑包由文件名而非完整的 URL 标识,您可以随时更改资源捆绑包的下载目录。这对于推出新版本游戏并确保浏览器或 CDN 不会错误地缓存文件非常有用。

通常情况下,使用 AssetBundle 的文件名生成缓存路径是没有问题的。但如果不同的 AssetBundles 具有相同的最后文件名,则会发生缓存冲突。借助 CachedAssetBundle 结构,您可以使用 CachedAssetBundle.name 来自定义缓存路径,以避免缓存冲突。您还可以利用它来组织缓存数据结构。