Version: Unity 6.2 (6000.2)
LanguageEnglish
  • C#

DownloadHandlerTexture

class in UnityEngine.Networking

/

Inherits from:Networking.DownloadHandler

/

Implemented in:UnityEngine.UnityWebRequestTextureModule

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

A DownloadHandler subclass specialized for downloading images for use as Texture objects.

DownloadHandlerTexture stores received data in a pre-allocated Unity Texture object. It's optimized for downloading images from web servers, and performs image decompression and decoding on a worker thread.

This download handler stores received data in a buffer and on download completion decodes the data into valid Unity Texture objects. If the texture is destroyed, it can be created again by the same DownloadHandlerTexture object.

The handler performs buffering, decompression and texture creation in native code. Additionally, decompression and texture creation are performed on a worker thread instead of the main thread, which can improve frame time when loading large textures.

DownloadHandlerTexture only allocates managed memory when finally creating the Texture itself, which eliminates the garbage collection overhead associated with performing the byte-to-texture conversion in script.

For use cases where you wish to download an image via HTTP and use it as a Texture within Unity, usage of this class is strongly recommended.

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

[RequireComponent(typeof(Image))] public class ImageDownloader : MonoBehaviour { Image _img;

void Start () { _img = GetComponent<UnityEngine.UI.Image>(); Download("https://www.mysite.com/myimage.png"); }

public void Download(string url) { StartCoroutine(LoadFromWeb(url)); }

IEnumerator LoadFromWeb(string url) { UnityWebRequest wr = new UnityWebRequest(url); DownloadHandlerTexture texDl = new DownloadHandlerTexture(true); wr.downloadHandler = texDl; yield return wr.SendWebRequest(); if (wr.result == UnityWebRequest.Result.Success) { Texture2D t = texDl.texture; Sprite s = Sprite.Create(t, new Rect(0, 0, t.width, t.height), Vector2.zero, 1f); _img.sprite = s; } } }

Properties

Property Description
textureReturns the downloaded Texture, or null. (Read Only)

Constructors

Constructor Description
DownloadHandlerTextureDefault constructor.

Static Methods

Method Description
GetContentReturns the downloaded Texture, or null.

Inherited Members

Properties

PropertyDescription
dataReturns the raw bytes downloaded from the remote server, or null. (Read Only)
errorError message describing a failure that occurred inside the download handler.
isDoneReturns true if this DownloadHandler has been informed by its parent UnityWebRequest that all data has been received, and this DownloadHandler has completed any necessary post-download processing. (Read Only)
nativeDataProvides direct access to downloaded data.
textConvenience property. Returns the bytes from data interpreted as a UTF8 string. (Read Only)

Public Methods

MethodDescription
DisposeSignals that this DownloadHandler is no longer being used, and should clean up any resources it is using.

Protected Methods

MethodDescription
CompleteContentCallback, invoked when all data has been received from the remote server.
GetDataCallback, invoked when the data property is accessed.
GetNativeDataProvides allocation-free access to the downloaded data as a NativeArray.
GetProgressCallback, invoked when UnityWebRequest.downloadProgress is accessed.
GetTextCallback, invoked when the text property is accessed.
ReceiveContentLengthHeaderCallback, invoked with a Content-Length header is received.
ReceiveDataCallback, invoked as data is received from the remote server.