the color of a black image , or the black part of a image, can not be changed.
I set the image's color to red, but the image is still black.
Is that a desired feature?
What i want is , the image is changed to red.
the Unity version is 5.0.1f. I am using the new UI.
答案 0 :(得分:6)
要了解问题的根源,您必须了解“改变颜色”的工作原理。这只是一个简单的乘法。在RGB术语中,“黑色”是(0,0,0)的向量 - 并且很明显,无论你将0乘以,它都会保持黑色。
如果您希望模板图像能够更改为任何颜色,请使用白色。
要以更复杂的方式修改颜色,您必须了解Color
组件的Image
属性的工作原理。 UI系统隐藏了很多复杂性(并且它很好)。基本上,Color
修改网格的顶点颜色。由于您通常不指定材质,因此使用默认的精灵材质,并使用默认的精灵着色器。在这个着色器中,当它绘制屏幕上的像素时,它会将顶点颜色乘以在此像素处采样的纹理颜色,这就是它产生最终结果的方式。如果你想要以不同的方式组合颜色,你将不得不编写一个自定义着色器 - 这真的不是那么难,但你可能不需要它在你想要做的范围内这个问题。
答案 1 :(得分:1)
黑色保持黑色。
然而,白色会随着您选择的颜色而改变,因此如果您使用图像编辑器并使图像为白色而不是黑色,则图像可以是您在Unity中选择的任何颜色。
答案 2 :(得分:0)
检查您的图片是否有Alpha通道。您可以使用GIMP或Photoshop执行此操作。如果是,请检查着色器/材质以确保它设置为透明/漫反射(而不仅仅是漫反射)。漫反射仅不会将alpha属性应用于材质。
此外,看起来您没有分配材料...
答案 3 :(得分:0)
确保您使用过yourImage.canvasRenderer.SetColor
。
例如:
damageAnim.canvasRenderer.SetColor (new Color (255, 255, 255, 255));