【发布时间】:2014-02-13 22:21:43
【问题描述】:
我想更改现有颜色的 alpha 值。但是,我不能直接编辑颜色。
当我尝试这样的事情时:
gui.color.a = 0;
我收到以下错误:
错误:无法修改“UnityEngine.GUITexture.color”的返回值 因为它不是变量。
但如果我复制变量,我可以编辑 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 值。谁能解释为什么这可能不起作用?
【问题讨论】: