我正在尝试获得类似于Unity文档中为协同程序提供的示例。在示例中,当我们更新其alpha值时,图像正在减慢淡入淡出:
IEnumerator Fade() {
for (float f = 1f; f >= 0; f -= 0.1f) {
Color c = renderer.material.color;
c.a = f;
renderer.material.color = c;
yield return null;
}
}
这是我的代码,QTE_Image是Image
组件。
while (!QTE_Finished) {
Color temp_Color = QTE_Image.color;
temp_Color.a = (255/(QTE_MultiplierMax - QTE_MultiplierMin))*QTE_Multiplier - (255/((QTE_MultiplierMax/QTE_MultiplierMin)-1));
Debug.Log (temp_Color.a);
QTE_Image.color = temp_Color;
yield return null;
}
如您所见,我正在使用公式计算下一个alpha值(公式正在运行,Debug.Log (temp_Color.a)
正在返回预期值)。但是,直到while循环结束时才会更新图像。
答案 0 :(得分:0)
问题在于Color
结构使用从0到1的十进制颜色值,而您的公式返回从0到255的alpha值。
从公式中删除255*
,或使用Color32
结构(使用0到255之间的整数范围)。
使用Color
struct:
temp_Color.a = (QTE_Multiplier - QTE_MultiplierMin) / (QTE_MultiplierMax - QTE_MultiplierMin);
使用Color32
struct:
temp_Color.a = (int) (255 * (QTE_Multiplier - QTE_MultiplierMin) / (QTE_MultiplierMax - QTE_MultiplierMin));