2017-06-07 127 views
0

我想要更改組件的Alpha顏色GameObject獲取圖片的當前RGB顏色

但保存對象的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

你是指執行完這段代碼後? – Adrian

+0

@adjan當然 – David

回答

2

結構Color使用範圍[0,1]中的通道值。所以,白色是(1,1,1,1)和黑色(0,0,0,0)。 color返回一個Color結構,而不是Color32

當你施放floatbyte,其結果將是1,如果所述信道爲1,或0,如果是小於1。由於你在一個Color32結構使用這些值(其在使用一個int每信道範圍[0,255]),如果起始顏色爲全白,則(1,1,1,1)幾乎爲黑色,如果任何通道未滿(即< 255使用整數),則頻道將全部關閉。

只要將new Color32更改爲new Color並刪除(byte)即可。