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

use*_*746 3 image colors unity-game-engine

不能改变黑色图像的颜色或图像的黑色部分. 例

我将图像的颜色设置为红色,但图像仍为黑色.

这是一个理想的功能吗?

我想要的是,图像变为红色.

Unity版本是5.0.1f.我正在使用新的UI.

Max*_*kov 6

要了解问题的根源,您必须了解"改变颜色"的工作原理.这只是一个简单的乘法.在RGB术语中,"黑色"是(0,0,0)的向量 - 并且很明显,无论你将0乘以,它都保持黑色.

如果您希望模板图像能够更改为任何颜色,请使用白色.

要以更复杂的方式修改颜色,您必须了解组件的Color属性如何Image工作.UI系统隐藏了很多复杂性(并且它很好).基本上,Color修改网格的顶点颜色.由于您通常不指定材质,因此使用默认的精灵材质,并使用默认的精灵着色器.在这个着色器中,当它绘制屏幕上的像素时,它会将顶点颜色乘以在此像素处采样的纹理颜色,这就是它产生最终结果的方式.如果你想要以不同的方式组合颜色,你将不得不编写一个自定义着色器 - 这真的不是那么难,但你可能不需要它在你想要做的范围内这个问题.