Texture2D.GetPixel
GetPixel(x: int, y: int): Color;
Color GetPixel(int x, int y);
def GetPixel(x as int, y as int) as Color
Description

Returns pixel color at coordinates (x, y).

If the pixel coordinates are out of bounds (larger than width/height or small than 0), they will be clamped or repeat based on the texture's wrap mode.

If you are reading a large block of pixels from the texture, it may be faster to use GetPixels which returns a whole block of pixel colors.

The texture must have the Read/Write Enabled flag set in the import settings, otherwise this function will fail. See Also: GetPixels, SetPixel, GetPixelBilinear.
	// Sets the y coordinate of the transform to follow the heightmap

var heightmap : Texture2D; var size = Vector3 (100, 10, 100); function Update () { var x : int = transform.position.x / size.x * heightmap.width; var z : int = transform.position.z / size.z * heightmap.height; transform.position.y = heightmap.GetPixel(x, z).grayscale * size.y; }
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public Texture2D heightmap;
    public Vector3 size = new Vector3(100, 10, 100);
    void Update() {
        int x = transform.position.x / size.x * heightmap.width;
        int z = transform.position.z / size.z * heightmap.height;
        transform.position.y = heightmap.GetPixel(x, z).grayscale * size.y;
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public heightmap as Texture2D

	public size as Vector3 = Vector3(100, 10, 100)

	def Update() as void:
		x as int = ((transform.position.x / size.x) * heightmap.width)
		z as int = ((transform.position.z / size.z) * heightmap.height)
		transform.position.y = (heightmap.GetPixel(x, z).grayscale * size.y)