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

标签 image colors unity3d

黑色图像的颜色或图像的黑色部分无法更改。 example

我将图像的颜色设置为红色,但图像仍然是黑色的。

这是一个理想的功能吗?

我想要的是,图像变成红色。

Unity 版本是 5.0.1f。 我正在使用新的用户界面。

最佳答案

要了解问题的根源,您必须了解“更改颜色”的工作原理。这不过是一个简单的乘法。在 RGB 术语中,“黑色”是 (0, 0, 0) 的向量 - 很明显,无论您将 0 乘以什么,它都会保持黑色。

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

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

关于image - 在 Unity 中无法更改黑色图像的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29932279/

相关文章:

c# - 如何在 WP8 map 上创建自动缩放图像

javascript - 如何延迟加载 div 背景图像

R : what library should I use? 中的图像处理/颜色检测

visual-studio - 如何处理这个 "InvalidOperationException: EnsureRunningOnMainThread can only be called from the main thread"

c# - 如何在 Unity 中将混音器的音量设置为 slider 的音量?

css - Html 100% 标题响应宽度

image - getOptimalNewCameraMatrix 在 OpenCV 中有什么作用?

gwt - GWT-Label 中的不同字体颜色

使过亮(HDR)颜色变为白色的算法?

c# - 该脚本缺少一个复选框