【发布时间】:2015-04-29 00:28:06
【问题描述】:
黑色图像的颜色或图像的黑色部分无法更改。
我将图像的颜色设置为红色,但图像仍然是黑色的。
这是一个理想的功能吗?
我想要的是,图像变成红色。
Unity 版本是 5.0.1f。 我正在使用新的用户界面。
【问题讨论】:
黑色图像的颜色或图像的黑色部分无法更改。
我将图像的颜色设置为红色,但图像仍然是黑色的。
这是一个理想的功能吗?
我想要的是,图像变成红色。
Unity 版本是 5.0.1f。 我正在使用新的用户界面。
【问题讨论】:
要了解问题的根源,您必须了解“更改颜色”的工作原理。这不过是一个简单的乘法。在 RGB 术语中,“黑色”是 (0, 0, 0) 的向量 - 很明显,无论您将 0 乘以什么,它都会保持黑色。
如果您希望模板图像能够更改为任何颜色,请使用白色。
要以更复杂的方式修改颜色,您必须了解Image 组件的Color 属性是如何工作的。 UI 系统在下面隐藏了很多复杂性(这很好)。基本上,Color 修改了网格的顶点颜色。由于您通常不指定材质,因此使用默认精灵材质,并且它使用默认精灵着色器。在这个着色器中,当它在屏幕上绘制像素时,它将顶点颜色乘以在该像素处采样的纹理颜色,这就是它产生最终结果的方式。如果你想以不同的方式组合颜色,你必须编写一个自定义着色器——这真的不那么难,但你可能不需要它来做你想做的事情。这个问题。
【讨论】:
黑色保持黑色。
然而,白色会随着您选择的任何颜色而变化,因此,如果您使用图像编辑器并将图像设置为白色而不是黑色,则图像可以是您在 Unity 中选择的任何颜色。
【讨论】:
检查您的图像是否具有 Alpha 通道。您可以使用 GIMP 或 Photoshop 完成此操作。如果是这样,请检查您的着色器/材质以确保将其设置为透明/漫反射(而不仅仅是漫反射)。仅漫反射不会将 alpha 属性应用于材质。
另外,您似乎没有分配材质...
【讨论】:
确保您使用过yourImage.canvasRenderer.SetColor。
例如:
damageAnim.canvasRenderer.SetColor (new Color (255, 255, 255, 255));
【讨论】: