2017-02-19 47 views
0

我有一个用户界面的画布,画布的大小相同。该图像有一个rgba0,0,0,0,使其不可见(因为a为0)。我想让图像从脚本中变成黑色。这里是我使用的代码:无法在脚本中更改图像的alpha值?

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); 
    } 
} 

现在,这在执行时不执行任何操作。但是,当我以统一方式手动更改图像的a值以便图像变为可见时,我可以看到脚本更改图像的颜色。所以脚本确实有效,它不可见,因为a值没有被脚本改变。 那么我怎样才能让图像从不可见变成黑色呢?

回答

5

这里是你的问题:

新颜色(0F,0F,0F,255F);

Color构造函数的参数需要从0f1f值,但你0f255f范围值传递给它。

这应该是:

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

如果你想使用0255范围,则必须通过255分摊。

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

那么,为什么255f能**完美地**当我给图像开始时的颜色? – RnRoger

+0

我在尝试1f之前去255f,1f也没有工作。 – RnRoger

+0

现在我甚至无法得到255f或任何其他值的工作,即使我给图片开始时的颜色;它只是跳到黑色或根本没有改变。 – RnRoger