GetPixel(int, int, int)
Gets the pixel color at coordinates ( x, y ).
Read time 2 minutesLast updated 4 days ago
Definition
- Type: Method
- Namespace: UnityEngine
- Assembly: UnityEngine.CoreModule
public Color GetPixel(int x, int y, int mipLevel)
Parameters
The x coordinate of the pixel to get. The range is through (texture width - 1).
0The y coordinate of the pixel to get. The range is through (texture height - 1).
0The mipmap level to sample. The range is through the texture's Texture.mipmapCount. The default value is .
00Returns
Type | Description |
|---|---|
| Color | The pixel color. |
Remarks
This method gets pixel data from the texture in CPU memory. Texture.isReadable must be .
trueThe lower left corner is (0, 0). If the pixel coordinate is outside the texture's dimensions, Unity clamps or repeats it, depending on the texture's TextureWrapMode.
GetPixelGetPixelIf you need to get a large block of pixels, it might be faster to use Texture2D.GetPixels32 or Texture2D.GetPixels.
You can't use with textures that use Crunch texture compression.
GetPixelAdditional Resources: Texture2D.GetPixels32, Texture2D.GetPixels, Texture2D.SetPixel, Texture2D.GetPixelBilinear.
Examples
// Sets the y coordinate of the transform to follow a heightmapusing UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour{ public Texture2D heightmap; public Vector3 size = new Vector3(100, 10, 100); void Update() { int x = Mathf.FloorToInt(transform.position.x / size.x * heightmap.width); int z = Mathf.FloorToInt(transform.position.z / size.z * heightmap.height); Vector3 pos = transform.position; pos.y = heightmap.GetPixel(x, z).grayscale * size.y; transform.position = pos; }}