Unity3D通过代码修改RGB值来控制UI与物体的Color颜色

在实际应用过程中,经常有需要将某一物体颜色修改成特定颜色的情况,此时Color中自带的颜色就不够用了,此时我们就需要通过用代码修改RGB值来控制颜色。

常见的错误写法

下面以修改TextMeshProUGUI的字体颜色为例

e.target.GetChild(0).GetComponent<TextMeshProUGUI>().color = new Color(37, 169, 196, 255);

这样直接运行,无论Color后的括号里是什么样的参数,字体颜色大概率为白色。

正确的写法

e.target.GetChild(0).GetComponent<TextMeshProUGUI>().color = 
	new Color(37 / 255f, 169 / 255f, 196 / 255f, 255 / 255f);

我们在Color面板中可以看到,RGBA的值最大为225。

  • R:Red,红。
  • G:Green,绿。
  • B:Blue,蓝。
  • A:Apha,透明度。

在这里插入图片描述
因此我们在设置参数的时候,每个值后面都得除225,且RGBA的值为float类型,需要在225后加f,即
“/ 225f”。如果不加f,在VS上是看不到错误的,但在Unity中Color的值会变为0,0,0,0。

希望这些可以帮助到你

猜你喜欢

转载自blog.csdn.net/weixin_50617270/article/details/129118877