public Color GetPixel (int x, int y);

描述

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

如果这些像素坐标超出边界(大于宽度/高度或小于 0), 则将被限制或者将根据该纹理的包裹模式进行重复。

纹理坐标从左下角开始。

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

该纹理必须在 texture import settings 中设置 read/write enabled 标志,否则此函数将失败。在使用 Crunch 纹理压缩的纹理上,GetPixel 不可用。

另请参阅: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; } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961