无法通过脚本更改GameObject颜色?

时间:2017-02-19 03:26:53

标签: c# unity3d

我有一个用于UI的画布,其图像与画布大小相同。 Image rgba 0,0,0,0a,使其不可见(因为public class NavigationC : MonoBehaviour { public Image screen; float fadeTime = 3f; Color colorToFadeTo; void StartGame() { colorToFadeTo = new Color(0f, 0f, 0f, 255f); screen.CrossFadeColor(colorToFadeTo, fadeTime, true, true); } } 为0)。我希望从脚本中将图像淡入黑色。这是我正在使用的代码:

a

现在,这在执行时没有做任何事情。但是当我以统一方式手动更改图像的a值以使图像变得可见时,我可以看到脚本改变了图像的颜色。因此脚本确实有效,因为脚本没有更改class ResetPassword(PasswordResetForm): class Meta: fields = ("new_password1", "new_password2") model = get_user_model() def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields["new_password1"].help_text = None 值,所以它不可见。 那么如何让图像从隐形变为黑色呢?

1 个答案:

答案 0 :(得分:6)

这是你的问题:

new Color(0f, 0f, 0f, **255f**);

Color构造函数参数的值从0f1f,但您将0f传递给255f范围值。

应该是:

colorToFadeTo = new Color(0f, 0f, 0f, 1f);

如果您想使用0255范围,则必须将其除以255

colorToFadeTo = new Color(0f, 0f, 0f, 255f/255f);

此外,Color32可以在0255之间取值。您可以使用它然后将其转换回颜色。

Color32 color32 = new Color32(0f, 0f, 0f, 255f));
Color color = color32;