# SetPixels32

> Sets the pixel colors of an entire mipmap level of a slice.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## SetPixels32(Color32\[], int, int)

Sets the pixel colors of an entire mipmap level of a slice.

```csharp
public void SetPixels32(Color32[] colors, int arrayElement, int miplevel)
```

### Parameters

**** (\[Color32\[]]\(/engine/6000.7/script-reference/unityengine/color32)): The array of pixel colours to use. This is a 2D image flattened to a 1D array.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The array slice to write `colors` to.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The mipmap level to write `colors` to. The range is `0` through the texture's [Texture.mipmapCount](/engine/6000.7/script-reference/unityengine/texture/mipmapcount.md). The default value is `0`.

### Remarks

This method sets pixel data for the texture in CPU memory. [Texture.isReadable](/engine/6000.7/script-reference/unityengine/texture/isreadable.md) must be `true`, and you must call [Texture2DArray.Apply](/engine/6000.7/script-reference/unityengine/texture2darray/apply.md) after `SetPixels32` to upload the changed pixels to the GPU.

`colors` must contain the pixels row by row, starting at the bottom left of the texture. The size of the array must be the width x height of the mipmap level.

`SetPixels32` might be slower than some other texture methods because it converts the [Color32](/engine/6000.7/script-reference/unityengine/color32.md) struct into the format the texture uses. To set pixel data more quickly, use [Texture2DArray.SetPixelData](/engine/6000.7/script-reference/unityengine/texture2darray/setpixeldata.md) instead.

You can use `SetPixels32` with the following [texture formats](/engine/6000.7/script-reference/unityengine/textureformat.md):

* Alpha8
* ARGB32
* ARGB4444
* BGRA32
* R16
* R16\_SIGNED
* R8
* R8\_SIGNED
* RFloat
* RG16
* RG16\_SIGNED
* RG32
* RG32\_SIGNED
* RGB24
* RGB24\_SIGNED
* RGB48
* RGB48\_SIGNED
* RGB565
* RGB9e5Float
* RGBA32
* RGBA32\_SIGNED
* RGBA4444
* RGBA64
* RGBA64\_SIGNED
* RGBAFloat
* RGBAHalf
* RGFloat
* RGHalf
* RHalf

For all other formats, `SetPixels32` fails. Unity throws an exception when `SetPixels32` fails.

Additional Resources: [Texture2DArray.SetPixels](/engine/6000.7/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixelData](/engine/6000.7/script-reference/unityengine/texture2darray/setpixeldata.md), [Texture2DArray.GetPixels32](/engine/6000.7/script-reference/unityengine/texture2darray/getpixels32.md), [Texture2DArray.GetPixels](/engine/6000.7/script-reference/unityengine/texture2darray/getpixels.md), [Texture2DArray.Apply](/engine/6000.7/script-reference/unityengine/texture2darray/apply.md), [mipmapCount](/engine/6000.7/script-reference/unityengine/texture/mipmapcount.md).

## SetPixels32(Color32\[], int)

Sets the pixel colors of an entire mipmap level of a slice.

```csharp
public void SetPixels32(Color32[] colors, int arrayElement)
```

### Parameters

**** (\[Color32\[]]\(/engine/6000.7/script-reference/unityengine/color32)): The array of pixel colours to use. This is a 2D image flattened to a 1D array.**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The array slice to write `colors` to.

### Remarks

This method sets pixel data for the texture in CPU memory. [Texture.isReadable](/engine/6000.7/script-reference/unityengine/texture/isreadable.md) must be `true`, and you must call [Texture2DArray.Apply](/engine/6000.7/script-reference/unityengine/texture2darray/apply.md) after `SetPixels32` to upload the changed pixels to the GPU.

`colors` must contain the pixels row by row, starting at the bottom left of the texture. The size of the array must be the width x height of the mipmap level.

`SetPixels32` might be slower than some other texture methods because it converts the [Color32](/engine/6000.7/script-reference/unityengine/color32.md) struct into the format the texture uses. To set pixel data more quickly, use [Texture2DArray.SetPixelData](/engine/6000.7/script-reference/unityengine/texture2darray/setpixeldata.md) instead.

You can use `SetPixels32` with the following [texture formats](/engine/6000.7/script-reference/unityengine/textureformat.md):

* Alpha8
* ARGB32
* ARGB4444
* BGRA32
* R16
* R16\_SIGNED
* R8
* R8\_SIGNED
* RFloat
* RG16
* RG16\_SIGNED
* RG32
* RG32\_SIGNED
* RGB24
* RGB24\_SIGNED
* RGB48
* RGB48\_SIGNED
* RGB565
* RGB9e5Float
* RGBA32
* RGBA32\_SIGNED
* RGBA4444
* RGBA64
* RGBA64\_SIGNED
* RGBAFloat
* RGBAHalf
* RGFloat
* RGHalf
* RHalf

For all other formats, `SetPixels32` fails. Unity throws an exception when `SetPixels32` fails.

Additional Resources: [Texture2DArray.SetPixels](/engine/6000.7/script-reference/unityengine/texture2darray/setpixels.md), [Texture2DArray.SetPixelData](/engine/6000.7/script-reference/unityengine/texture2darray/setpixeldata.md), [Texture2DArray.GetPixels32](/engine/6000.7/script-reference/unityengine/texture2darray/getpixels32.md), [Texture2DArray.GetPixels](/engine/6000.7/script-reference/unityengine/texture2darray/getpixels.md), [Texture2DArray.Apply](/engine/6000.7/script-reference/unityengine/texture2darray/apply.md), [mipmapCount](/engine/6000.7/script-reference/unityengine/texture/mipmapcount.md).
