版本:Unity 6 (6000.0)
语言:英语
从一个 HTTP 服务器获取纹理(GET)
将表单发送到一个 HTTP 服务器(POST)

从一个 HTTP 服务器下载 AssetBundle(GET)

要从远程服务器下载 AssetBundle,你可以使用 UnityWebRequest.GetAssetBundle。此函数将数据流式传输到一个内部缓冲区,该缓冲区在工作线程上对 AssetBundle 的数据进行解码和解压缩。

此函数的参数有多种形式。在最简单的形式中,它只获取应从中下载 AssetBundle 的 URL。你还可以选择提供一个校验和来验证已下载数据的完整性。

或者,如果你希望使用 AssetBundle 缓存系统,你可以提供一个版本号或一个 Hash128 数据结构。这些与通过 WWW.LoadFromCacheOrDownload 提供给旧系统的版本号或 Hash128 对象 相同。

详情

  • 此函数创建一个 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 = UnityWebRequestAssetBundle.GetAssetBundle("https://www.my-server.com/myData.unity3d");
        yield return www.SendWebRequest();
 
        if (www.result != UnityWebRequest.Result.Success) {
            Debug.Log(www.error);
        }
        else {
            AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
        }
    }
}
从一个 HTTP 服务器获取纹理(GET)
将表单发送到一个 HTTP 服务器(POST)