获取图像的当前RGB颜色

时间:2017-06-07 10:27:31

标签: c# image unity3d alpha

我想更改image(script) GameObject组件的Alpha颜色。

但保存对象的RGB值。

我尝试了下一个代码:

        targetObject.GetComponent<Image>().color = new Color32(
            (byte)targetObject.GetComponent<Image>().color.r,
            (byte)targetObject.GetComponent<Image>().color.g,
            (byte)targetObject.GetComponent<Image>().color.b, 
            toAlpha);

但是(byte)targetObject.GetComponent<Image>().color.r会返回0。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

结构Color使用[0,1]范围内的通道值。因此,白色是(1,1,1,1)和黑色(0,0,0,0)。 color专有权返回Color结构,而不是Color32

当您将float转换为byte时,如果通道为1,则结果为1;如果小于1,则结果为0.因为您在{{1}中使用这些值struct(在[0,255]范围内每个通道使用一个Color32),如果起始颜色是全白,你将有一个几乎黑色的(1,1,1,1),如果有的话通道未满(即使用整数<255),通道将全部关闭。

只需将int更改为new Color32,然后移除new Color演员。