Please save me from going crazy.
No matter how many times I google, I always end up with (usually deprecated) versions of the following code:
IEnumerator setImage(string url) {
Texture2D texture = profileImage.canvasRenderer.GetMaterial().mainTexture as Texture2D;
WWW www = new WWW(url);
yield return www;
Debug.Log("Why on earh is this never called?");
www.LoadImageIntoTexture(texture);
www.Dispose();
www = null;
}
I'm using Unity 5 not 4. The URL I'm trying to load exists. Please shine some light on me.
How do I load an image over HTTP and display it in a UnityEngine.UI.Image?
For Unity 2018+ use UnityWebRequest
which replaces the WWW
class.
void Start(){
StartCoroutine(DownloadImage(url));
}
IEnumerator DownloadImage(string MediaUrl)
{
UnityWebRequest request = UnityWebRequestTexture.GetTexture(MediaUrl);
yield return request.SendWebRequest();
if(request.isNetworkError || request.isHttpError)
Debug.Log(request.error);
else
YourRawImage.texture = ((DownloadHandlerTexture) request.downloadHandler).texture;
}