Version: 2020.3
public Color GetPixel (int x, int y);

描述

返回坐标 (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.

另请参阅:GetPixels32GetPixelsSetPixelGetPixelBilinear

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