Version: 2021.3
public Color GetPixel (int x, int y, int mipLevel= 0);


x X coordinate of the pixel to set.
y Y coordinate of the pixel to set.
mipLevel Mip level to sample, must be in the range [0, mipCount[.


Color Pixel color sampled.


返回坐标 (x, y) 上的像素颜色。

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


如果您从纹理读取大像素块, 使用 GetPixels32GetPixels 可能更快,它返回整块像素颜色。

Texture.isReadable must be true. GetPixel is not available on Textures using Crunch texture compression.


// 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; } }