unity3d 在Unity中无法更改黑色图像的颜色

xj3cbfub  于 2022-12-13  发布在  其他
关注(0)|答案(4)|浏览(632)

黑色图像的颜色或图像的黑色部分不能更改。

我将图像的颜色设置为红色,但图像仍为黑色。
这是您想要的功能吗?
我想要的是,图像变成红色。
Unity版本是5.0.1f。我正在使用新的UI。

r1zhe5dt

r1zhe5dt1#

要理解问题的根源,你必须了解“改变颜色”是如何工作的。它只不过是一个简单的乘法。在RGB术语中,“黑色”是一个向量(0,0,0)--很明显,无论你用什么乘以0,它都是黑色的。
如果希望模板图像能够更改为任何颜色,请使用白色。
要以更复杂的方式修改颜色,您必须了解Image组件的Color属性是如何工作的。基本上,Color修改了网格的顶点颜色。因为你通常不指定材质,所以使用默认的sprite材质,它使用默认的sprite着色器。在这个着色器中,当它在屏幕上绘制像素时,它会将顶点颜色乘以在该像素采样的纹理颜色,这就是它产生最终结果的方式。如果你想以不同的方式组合颜色,你必须编写一个自定义着色器-这真的没有那么难,但你可能不需要它来完成你在这个问题范围内尝试做的事情。

1tuwyuhd

1tuwyuhd2#

黑色永远是黑色。
然而,白色将随您选择的任何颜色而变化,因此如果您使用图像编辑器并使图像为白色而不是黑色,则图像可以是您在Unity中选择的任何颜色。

oxcyiej7

oxcyiej73#

检查你的图像是否有alpha通道。你可以用GIMP或Photoshop来做。如果有,那么检查你的着色器/材质,确保它被设置为透明/漫反射(而不仅仅是漫反射)。仅漫反射不会对材质应用alpha属性。
而且,看起来您没有指定材料...

62o28rlo

62o28rlo4#

确保您使用了yourImage.canvasRenderer.SetColor
例如:

damageAnim.canvasRenderer.SetColor (new Color (255, 255, 255, 255));

相关问题