# GetPixel(int, int, int, int)

> Gets the pixel color at coordinates ( x, y, z ).

## Definition

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

```csharp
public Color GetPixel(int x, int y, int z, int mipLevel)
```

### Parameters

**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The x coordinate of the pixel to get. The range is `0` through the (texture width - 1).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The y coordinate of the pixel to get. The range is `0` through the (texture height - 1).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The z coordinate of the pixel to get. The range is `0` through the (texture depth - 1).**** (\[int]\(https\://learn.microsoft.com/dotnet/api/system.int32)): The mipmap level to sample. The range is `0` through the texture's [Texture.mipmapCount](/engine/6000.6/script-reference/unityengine/texture/mipmapcount.md). The default value is `0`.

### Returns

| Type                                                          | Description      |
| ------------------------------------------------------------- | ---------------- |
| [Color](/engine/6000.6/script-reference/unityengine/color.md) | The pixel color. |

### Remarks

This method gets pixel data from the texture in CPU memory. [Texture.isReadable](/engine/6000.6/script-reference/unityengine/texture/isreadable.md) must be `true`.

The lower left corner is (0, 0, 0). If the pixel coordinate is outside the texture's dimensions, Unity clamps or repeats it, depending on the texture's [TextureWrapMode](/engine/6000.6/script-reference/unityengine/texturewrapmode.md).

`GetPixel` might be slower than some other texture methods because it converts the format the texture uses into [Color](/engine/6000.6/script-reference/unityengine/color.md). `GetPixel` also needs to decompress compressed textures, and use memory to store the decompressed area. To get pixel data more quickly, use [Texture3D.GetPixelData](/engine/6000.6/script-reference/unityengine/texture3d/getpixeldata.md) instead.

If you need to get a large block of pixels, it might be faster to use [Texture3D.GetPixels32](/engine/6000.6/script-reference/unityengine/texture3d/getpixels32.md) or [Texture3D.GetPixels](/engine/6000.6/script-reference/unityengine/texture3d/getpixels.md).

You can't use `GetPixel` with textures that use Crunch texture compression.

Additional Resources: [Texture3D.GetPixels32](/engine/6000.6/script-reference/unityengine/texture3d/getpixels32.md), [Texture3D.GetPixels](/engine/6000.6/script-reference/unityengine/texture3d/getpixels.md), [Texture3D.SetPixel](/engine/6000.6/script-reference/unityengine/texture3d/setpixel.md), [Texture3D.GetPixelBilinear](/engine/6000.6/script-reference/unityengine/texture3d/getpixelbilinear.md).
