- 从HTTP服务器下载AssetBundle(GET)
- 细节
- 例
从HTTP服务器下载AssetBundle(GET)
要从远程服务器下载AssetBundle,可以使用UnityWebRequest.GetAssetBundle。此函数将数据流式传输到内部缓冲区,该缓冲区解码并解压缩工作线程上的AssetBundle数据。
函数的参数有几种形式。以最简单的形式,它只需要从中下载AssetBundle的URL。您可以选择提供校验和来验证下载数据的完整性。
或者,如果您希望使用AssetBundle缓存系统,则可以提供版本号或Hash128数据结构。这些与版本号相同或Hash128 objects通过旧系统提供WWW.LoadFromCacheOrDownload。
细节
• 该函数创建一个UnityWebRequest并将目标URL设置为提供的URL参数。它还将HTTP动词设置为GET,但不设置其他标志或自定义标题。• 该功能附加一个DownloadHandlerAssetBundle到UnityWebRequest。这个下载处理程序有一个特殊的assetBundle属性,一旦足够的数据被下载和解码以允许访问AssetBundle内部的资源,它就可以用来提取AssetBundle。• 如果您提供版本号或Hash128对象作为参数,它也将这些参数传递给DownloadHandlerAssetBundle。下载处理程序然后使用缓存系统。
例
using UnityEngine;using UnityEngine.Networking;using System.Collections;public class MyBehaviour : MonoBehaviour {void Start() {StartCoroutine(GetAssetBundle());}IEnumerator GetAssetBundle() {UnityWebRequest www = UnityWebRequest.GetAssetBundle("http://www.my-server.com/myData.unity3d");yield return www.SendWebRequest();if(www.isNetworkError || www.isHttpError) {Debug.Log(www.error);}else {AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);}}}
?
