方法
Texture2D.GetPixel
功能形式
公共颜色 GetPixel(int x, int y);
功能说明
返回坐标(x,y)处像素的颜色; 如果这些像素坐标超出范围(大于宽度/高度或小于0),则会根据该纹理的环绕模式对其进行限制或重复; 纹理坐标从左下角开始; 纹理必须在纹理导入设置中设置读/写启用标志,否则此功能将失败。 GetPixel 不适用于使用 Crunch 纹理压缩的纹理。
官方介绍:
脚步
1.打开Unity项目音乐,选择一张图片导入获取对应的颜色像素,本文选择热力图。
2. 在导入的图像设置中勾选“Read/Write Enable”,然后不要忘记“Apply”。 这一步是使图像可读/可写。
3、新建脚本HeatMapunity加贴图像素游戏素材,写入以下内容:(本文使用Slider的值来控制颜色变化)
using UnityEngine;
using UnityEngine.UI;
public class HeatMap : MonoBehaviour
{
public Texture2D heatMap;
public Slider colorSlider;
public Color color;
// Update is called once per frame
void Update()
{
GetColor(colorSlider.value);
gameObject.GetComponent().material.color = color;
}
public Color GetColor(float value)
{
int index = (int)(value * (heatMap.width - 1));
color = heatMap.GetPixel(index, heatMap.height / 2);
return color;
}
}
在获取颜色的GetPixel方法中,可以按照自己想要获取像素颜色的方式重写。 本文选用的图片只是根据横坐标改变颜色unity加贴图,所以纵坐标是图片高度的一半。
4、在场景中新建一个Object和一个Slider,为该对象添加脚本,并将图片和Slider拖到对应的位置。
5. 运行并拖动滑块,您将看到对象的颜色一起变化。
VRARMR交流群:695965244