# GetTexture

> Create a UnityWebRequest intended to download an image via HTTP GET and create a Texture based on the retrieved data.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Networking](/engine/6000.5/script-reference/unityengine/networking.md)
* **Assembly:** UnityEngine.UnityWebRequestTextureModule

## GetTexture(string)

Create a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) intended to download an image via HTTP GET and create a [Texture](/engine/6000.5/script-reference/unityengine/texture.md) based on the retrieved data.

```csharp
public static UnityWebRequest GetTexture(string uri)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The URI of the image to download.

### Returns

| Type                                                                                         | Description                                                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) properly configured to download an image and convert it to a [Texture](/engine/6000.5/script-reference/unityengine/texture.md). |

### Remarks

Use `UnityWebRequestTexture.GetTexture` to retrieve a Texture file from a remote server. This function is very similar to `UnityWebRequest.Get`, but is optimized for downloading and storing textures efficiently. It creates a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) and sets the target URL to the one specified as a string or uri object in the `uri` argument. No other flags or custom headers are set.

This method attaches a [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) object to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md). [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) is a specialized [DownloadHandler](/engine/6000.5/script-reference/unityengine/networking/downloadhandler.md) optimized for storing images that are to be used as textures in the Unity Engine. Using this class significantly reduces memory reallocation compared to downloading raw bytes and creating a texture manually in script. In addition, texture conversion is performed on a worker thread.

This method attaches no [UploadHandler](/engine/6000.5/script-reference/unityengine/networking/uploadhandler.md) to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md).

The texture is created as if it stores color data. Only JPG and PNG formats are supported.

Additional Resources: [TextureImporter.sRGBTexture](/engine/6000.5/script-reference/unityeditor/textureimporter/srgbtexture.md).

### Examples

```csharp
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehaviour : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(GetText());
    }

    IEnumerator GetText()
    {
        using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture("https://www.my-server.com/myimage.png"))
        {
            yield return uwr.SendWebRequest();

            if (uwr.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                // Get downloaded asset bundle
                var texture = DownloadHandlerTexture.GetContent(uwr);
            }
        }
    }
}
```

## GetTexture(Uri)

Create a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) intended to download an image via HTTP GET and create a [Texture](/engine/6000.5/script-reference/unityengine/texture.md) based on the retrieved data.

```csharp
public static UnityWebRequest GetTexture(Uri uri)
```

### Parameters

**** (\[Uri]\(https\://learn.microsoft.com/dotnet/api/system.uri)): The URI of the image to download.

### Returns

| Type                                                                                         | Description                                                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) properly configured to download an image and convert it to a [Texture](/engine/6000.5/script-reference/unityengine/texture.md). |

### Remarks

Use `UnityWebRequestTexture.GetTexture` to retrieve a Texture file from a remote server. This function is very similar to `UnityWebRequest.Get`, but is optimized for downloading and storing textures efficiently. It creates a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) and sets the target URL to the one specified as a string or uri object in the `uri` argument. No other flags or custom headers are set.

This method attaches a [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) object to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md). [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) is a specialized [DownloadHandler](/engine/6000.5/script-reference/unityengine/networking/downloadhandler.md) optimized for storing images that are to be used as textures in the Unity Engine. Using this class significantly reduces memory reallocation compared to downloading raw bytes and creating a texture manually in script. In addition, texture conversion is performed on a worker thread.

This method attaches no [UploadHandler](/engine/6000.5/script-reference/unityengine/networking/uploadhandler.md) to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md).

The texture is created as if it stores color data. Only JPG and PNG formats are supported.

Additional Resources: [TextureImporter.sRGBTexture](/engine/6000.5/script-reference/unityeditor/textureimporter/srgbtexture.md).

### Examples

```csharp
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehaviour : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(GetText());
    }

    IEnumerator GetText()
    {
        using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture("https://www.my-server.com/myimage.png"))
        {
            yield return uwr.SendWebRequest();

            if (uwr.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                // Get downloaded asset bundle
                var texture = DownloadHandlerTexture.GetContent(uwr);
            }
        }
    }
}
```

## GetTexture(string, bool)

Create a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) intended to download an image via HTTP GET and create a [Texture](/engine/6000.5/script-reference/unityengine/texture.md) based on the retrieved data.

```csharp
public static UnityWebRequest GetTexture(string uri, bool nonReadable)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The URI of the image to download.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: `false`.

### Returns

| Type                                                                                         | Description                                                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) properly configured to download an image and convert it to a [Texture](/engine/6000.5/script-reference/unityengine/texture.md). |

### Remarks

Use `UnityWebRequestTexture.GetTexture` to retrieve a Texture file from a remote server. This function is very similar to `UnityWebRequest.Get`, but is optimized for downloading and storing textures efficiently. It creates a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) and sets the target URL to the one specified as a string or uri object in the `uri` argument. No other flags or custom headers are set.

This method attaches a [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) object to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md). [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) is a specialized [DownloadHandler](/engine/6000.5/script-reference/unityengine/networking/downloadhandler.md) optimized for storing images that are to be used as textures in the Unity Engine. Using this class significantly reduces memory reallocation compared to downloading raw bytes and creating a texture manually in script. In addition, texture conversion is performed on a worker thread.

This method attaches no [UploadHandler](/engine/6000.5/script-reference/unityengine/networking/uploadhandler.md) to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md).

The texture is created as if it stores color data. Only JPG and PNG formats are supported.

Additional Resources: [TextureImporter.sRGBTexture](/engine/6000.5/script-reference/unityeditor/textureimporter/srgbtexture.md).

### Examples

```csharp
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehaviour : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(GetText());
    }

    IEnumerator GetText()
    {
        using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture("https://www.my-server.com/myimage.png"))
        {
            yield return uwr.SendWebRequest();

            if (uwr.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                // Get downloaded asset bundle
                var texture = DownloadHandlerTexture.GetContent(uwr);
            }
        }
    }
}
```

## GetTexture(Uri, bool)

Create a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) intended to download an image via HTTP GET and create a [Texture](/engine/6000.5/script-reference/unityengine/texture.md) based on the retrieved data.

```csharp
public static UnityWebRequest GetTexture(Uri uri, bool nonReadable)
```

### Parameters

**** (\[Uri]\(https\://learn.microsoft.com/dotnet/api/system.uri)): The URI of the image to download.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): If true, the texture's raw data will not be accessible to script. This can conserve memory. Default: `false`.

### Returns

| Type                                                                                         | Description                                                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) properly configured to download an image and convert it to a [Texture](/engine/6000.5/script-reference/unityengine/texture.md). |

### Remarks

Use `UnityWebRequestTexture.GetTexture` to retrieve a Texture file from a remote server. This function is very similar to `UnityWebRequest.Get`, but is optimized for downloading and storing textures efficiently. It creates a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) and sets the target URL to the one specified as a string or uri object in the `uri` argument. No other flags or custom headers are set.

This method attaches a [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) object to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md). [DownloadHandlerTexture](/engine/6000.5/script-reference/unityengine/networking/downloadhandlertexture.md) is a specialized [DownloadHandler](/engine/6000.5/script-reference/unityengine/networking/downloadhandler.md) optimized for storing images that are to be used as textures in the Unity Engine. Using this class significantly reduces memory reallocation compared to downloading raw bytes and creating a texture manually in script. In addition, texture conversion is performed on a worker thread.

This method attaches no [UploadHandler](/engine/6000.5/script-reference/unityengine/networking/uploadhandler.md) to the [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md).

The texture is created as if it stores color data. Only JPG and PNG formats are supported.

Additional Resources: [TextureImporter.sRGBTexture](/engine/6000.5/script-reference/unityeditor/textureimporter/srgbtexture.md).

### Examples

```csharp
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class MyBehaviour : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(GetText());
    }

    IEnumerator GetText()
    {
        using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture("https://www.my-server.com/myimage.png"))
        {
            yield return uwr.SendWebRequest();

            if (uwr.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                // Get downloaded asset bundle
                var texture = DownloadHandlerTexture.GetContent(uwr);
            }
        }
    }
}
```

## GetTexture(string, DownloadedTextureParams)

Create a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) intended to download an image via HTTP GET and create a [Texture](/engine/6000.5/script-reference/unityengine/texture.md) based on the retrieved data.

```csharp
public static UnityWebRequest GetTexture(string uri, DownloadedTextureParams parameters)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The URI of the image to download.**** (\[DownloadedTextureParams]\(/engine/6000.5/script-reference/unityengine/networking/downloadedtextureparams)): Parameters specifying various properties of texture that will be created.

### Returns

| Type                                                                                         | Description                                                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) properly configured to download an image and convert it to a [Texture](/engine/6000.5/script-reference/unityengine/texture.md). |

### Remarks

Same as an overload with only `uri` parameter, except that it allows more control over the properties of texture that will be created. For example, using this overload you can disable creation of mipmaps or use linear color space.

### Examples

```csharp
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class NewMonoBehaviourScript : MonoBehaviour
{
   void Start()
   {
       StartCoroutine(GetText());
   }

    IEnumerator GetText()
    {
        // Use linear color space and reduce memory usage by disabling mipmaps and ability to read pixels
        var parameters = DownloadedTextureParams.Default;
        parameters.readable = false;
        parameters.mipmapChain = false;
        parameters.linearColorSpace = true;
        using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture("https://www.my-server.com/myimage.png", parameters))
        {
            yield return uwr.SendWebRequest();

            if (uwr.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                // Get downloaded asset bundle
                var texture = DownloadHandlerTexture.GetContent(uwr);
            }
        }
    } 
}
```

## GetTexture(Uri, DownloadedTextureParams)

Create a [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) intended to download an image via HTTP GET and create a [Texture](/engine/6000.5/script-reference/unityengine/texture.md) based on the retrieved data.

```csharp
public static UnityWebRequest GetTexture(Uri uri, DownloadedTextureParams parameters)
```

### Parameters

**** (\[Uri]\(https\://learn.microsoft.com/dotnet/api/system.uri)): The URI of the image to download.**** (\[DownloadedTextureParams]\(/engine/6000.5/script-reference/unityengine/networking/downloadedtextureparams)): Parameters specifying various properties of texture that will be created.

### Returns

| Type                                                                                         | Description                                                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) | A [UnityWebRequest](/engine/6000.5/script-reference/unityengine/networking/unitywebrequest.md) properly configured to download an image and convert it to a [Texture](/engine/6000.5/script-reference/unityengine/texture.md). |

### Remarks

Same as an overload with only `uri` parameter, except that it allows more control over the properties of texture that will be created. For example, using this overload you can disable creation of mipmaps or use linear color space.

### Examples

```csharp
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class NewMonoBehaviourScript : MonoBehaviour
{
   void Start()
   {
       StartCoroutine(GetText());
   }

    IEnumerator GetText()
    {
        // Use linear color space and reduce memory usage by disabling mipmaps and ability to read pixels
        var parameters = DownloadedTextureParams.Default;
        parameters.readable = false;
        parameters.mipmapChain = false;
        parameters.linearColorSpace = true;
        using (UnityWebRequest uwr = UnityWebRequestTexture.GetTexture("https://www.my-server.com/myimage.png", parameters))
        {
            yield return uwr.SendWebRequest();

            if (uwr.result != UnityWebRequest.Result.Success)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                // Get downloaded asset bundle
                var texture = DownloadHandlerTexture.GetContent(uwr);
            }
        }
    } 
}
```
