天天看点

Unity从URL下载图片,赋值给RawImage和平面Plane

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

public class DownloadPicFromURL : MonoBehaviour
{
    public RawImage myImage;    // 需要被赋予纹理的UI图像,将场景中的RawImage拖拽赋值给该脚本
    private GameObject myPlane; // 需要被赋予纹理的平面
    void Start()
    {
        // 通过Find方法赋值
        myPlane = GameObject.Find("Plane");
        StartCoroutine(DownloadImage("http://rd7ckb9qt.hn-bkt.clouddn.com/step2.png"));
    }


    IEnumerator DownloadImage(string MediaUrl)
    {
        UnityWebRequest request = UnityWebRequestTexture.GetTexture(MediaUrl);
        yield return request.SendWebRequest();
        if (request.result == UnityWebRequest.Result.ProtocolError || request.result == UnityWebRequest.Result.ConnectionError)
            Debug.Log(request.error);
        else
        {
            // RawImage赋予纹理
            myImage.texture = ((DownloadHandlerTexture)request.downloadHandler).texture;
            // 平面赋予纹理
            myPlane.GetComponent<Renderer>().material.mainTexture = ((DownloadHandlerTexture)request.downloadHandler).texture;
        }
            
    }
}

           

继续阅读