我想更改現有顏色的Alpha值。但是,我無法直接編輯顏色。Unity顏色擴展方法不影響顏色
當我嘗試這樣的事:
gui.color.a = 0;
我得到以下錯誤:
Error: Cannot modify the return value of 'UnityEngine.GUITexture.color' because it is not a variable.
但是,如果我複製變量,我能夠編輯alpha值。
Color tempColor = gui.color;
tempColor .a = .25f;
gui.color = tmpclr;
這是爲什麼?爲什麼Color的新實例不會拋出相同的錯誤?
此外,我還以爲是因爲我不得不這樣做常常我會寫一點點擴展方法是這樣的:
private static Color tempColor;
public static void SetAlpha(this Color color, float alpha)
{
tempColor = color;
tempColor.a = alpha;
color = tempColor;
}
但讓我吃驚地編譯但並沒有改變alpha值。任何人都可以解釋爲什麼這可能不工作?