我想更改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。
有什么想法吗?
答案 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
演员。