Texture2D.GetPixel 获取像素颜色

function GetPixel (x : int, y : int) : Color

Description描述

Returns pixel color at coordinates (x, y).

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

如果这个像素的坐标超出边界(大于这个纹理的宽/高或者小于0),那么它将会以纹理的循环模式为准进行限制或重复

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.

如果你需要从纹理上读取一大块像素,使用 GetPixels 可以更快的返回整块的像素颜色

The texture must have the Is Readable flag set in the import settings, otherwise this function will fail. See Also: GetPixels, SetPixel, GetPixelBilinear.

这个纹理需要在导入设置里设置为Is Readable(可读),否则此函数将会无效。

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;
	}
}
// Sets the y coordinate of the transform to follow the heightmap
//设置Y轴坐标的位置跟随高度图
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;
}

参考: GetPixels, SetPixel, GetPixelBilinear.

Page last updated: 2010-12-18