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

我有一个用于UI的canvas,其图像与canvas大小相同。 Imagergba0,0,0,0 ,使其不可见(因为a为0)。 我希望从脚本中将图像淡入黑色。 这是我正在使用的代码:

 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值。 那么如何让图像从隐形变为黑色呢?

这是你的问题:

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;