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 repeated based on the texture's wrap mode.
Texture coordinates start at lower left corner.
If you are reading a large block of pixels from the texture, it may be faster
to use GetPixels32 or 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. GetPixel is not available on Textures using Crunch texture compression.
See Also: GetPixels32, GetPixels, SetPixel, GetPixelBilinear.
#pragma strict // Sets the y coordinate of the transform to follow the heightmap public var heightmap: Texture2D; public var size: Vector3 = new Vector3(100, 10, 100); function Update() { var x: int = Mathf.FloorToInt(transform.position.x / size.x * heightmap.width); var z: int = Mathf.FloorToInt(transform.position.z / size.z * heightmap.height); var pos: Vector3 = transform.position; pos.y = heightmap.GetPixel(x, z).grayscale * size.y; transform.position = pos; }
// Sets the y coordinate of the transform to follow the heightmap using 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; } }
Did you find this page useful? Please give it a rating: