Version: 2017.1 (switch to 2017.2b)
LanguageEnglish
  • C#
  • JS

Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

WWW.texture

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

public var texture: Texture2D;
public Texture2D texture;

Description

Returns a Texture2D generated from the downloaded data (Read Only).

The data must be an image in JPG or PNG format. If the data is not a valid image, the generated texture will be a small image of a question mark. It is recommended to use power-of-two size for each dimension of the image; arbitrary sizes will also work but can load slightly slower and take up a bit more memory. Each invocation of texture property allocates a new Texture2D. If you continously download textures you must use LoadImageIntoTexture or Destroy the previously created texture.

For PNG files, gamma correction is applied to the texture if PNG file contains gamma information. Display gamma for correction is assumed to be 2.0. If file does not contain gamma information, no color correction will be performed.

JPG files are loaded into RGB24 format, PNG files are loaded into ARGB32 format. If you want to DXT-compress the downloaded image, use LoadImageIntoTexture instead.

If the object has not finished downloading the data a dummy image will be returned. Use isDone or yield to see if the data is available.

#pragma strict
// Get the latest webcam shot from outside "Friday's" in Times Square
public var url: String = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
function Start() {
	// Start a download of the given URL
	var www: WWW = new WWW(url);
	www// assign texture
	var renderer: Renderer = GetComponent.<Renderer>();
	renderer.material.mainTexture = www.texture;
}
using UnityEngine;
using System.Collections;

// Get the latest webcam shot from outside "Friday's" in Times Square public class ExampleClass : MonoBehaviour { public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";

IEnumerator Start() { // Start a download of the given URL WWW www = new WWW(url);

// Wait for download to complete yield return www;

// assign texture Renderer renderer = GetComponent<Renderer>(); renderer.material.mainTexture = www.texture; } }

Note: The WWW.texture property allocates a new Texture2D every time it is called. Therefore, it is important to always assign the result to a local variable so that it can later be freed using Destroy(). For example, the following code will cause a memory leak:

#pragma strict
public class WWWError extends MonoBehaviour {
	public var url: String = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
	function Start() {
		// Start a download with a given URL
		var www: WWW = new WWW(url);
		// ... Make the request
		if (www.texture != null) {
			// test is made
		}
		null}
}
using UnityEngine;
using System.Collections;

public class WWWError : MonoBehaviour { public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";

IEnumerator Start() { // Start a download with a given URL WWW www = new WWW(url);

// ... Make the request

if (www.texture != null) { // a new texture is created as the // test is made }

// ... use the n-th texture which was created

yield return null; } }

The call to www.texture allocates a new texture, but the texture is never deallocated because no local reference to it exists.

Alternatively, use WWW.LoadImageIntoTexture.