• 从HTTP服务器检索纹理(GET)
    • 细节

    从HTTP服务器检索纹理(GET)

    要从远程服务器检索纹理文件,可以使用UnityWebRequest.Texture.此功能与UnityWebRequest.GET下载和存储纹理效果非常相似,但经过优化。

    该函数将一个字符串作为参数。该字符串指定您希望从中下载图像文件以用作纹理的URL。

    细节

    1. 该函数创建一个`UnityWebRequest`并将目标URL设置为字符串参数。该函数不设置其他标志或自定义标题。
    2. 该函数将一个`DownloadHandlerTexture`对象附加到`UnityWebRequest``DownloadHandlerTexture`是专门用于存储在Unity引擎中用作纹理的图像的专用下载处理程序。与下载原始字节并在脚本中手动创建纹理相比,使用此类可显著减少内存重新分配。
    3. 默认情况下,此函数不附加上传处理程序。如果您愿意,您可以手动添加一个。

    1. using UnityEngine;
    2. using System.Collections;
    3. using UnityEngine.Networking;
    4. public class MyBehaviour : MonoBehaviour {
    5. void Start() {
    6. StartCoroutine(GetTexture());
    7. }
    8. IEnumerator GetTexture() {
    9. UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.my-server.com/image.png");
    10. yield return www.SendWebRequest();
    11. if(www.isNetworkError || www.isHttpError) {
    12. Debug.Log(www.error);
    13. }
    14. else {
    15. Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
    16. }
    17. }
    18. }

    或者,您可以使用助手getter来实现GetTexture

    1. IEnumerator GetTexture() {
    2. UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.my-server.com/image.png");
    3. yield return www.SendWebRequest();
    4. Texture myTexture = DownloadHandlerTexture.GetContent(www);
    5. }

    ?