返回坐标 (x, y) 上的像素颜色。
如果这些像素坐标超出边界(大于宽度/高度或小于 0),
则将被限制或者将根据该纹理的包裹模式进行重复。
纹理坐标从左下角开始。
如果您从纹理读取大像素块,
使用 GetPixels32 或 GetPixels 可能更快,它返回整块像素颜色。
该纹理必须在导入设置中设置了 Read/Write Enabled 标志,否则此函数将失败。在使用 Crunch 纹理压缩的纹理上,GetPixel 不可用。
另请参阅:GetPixels32、GetPixels、SetPixel、GetPixelBilinear。
// 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;
}
}