如何使用十六进制值更改 Unity 中的按钮颜色?
我尝试了这个,但它不起作用,也许我在这里犯了一个错误:
btn.image.color = ColorUtility.TryParseHtmlString(DADADAFF, out color);
您正在将 bool 分配给 Color(btn.image.color
).
ColorUtility.TryParseHtmlString
回报bool
not Color
如果成功的话。您在第二个参数中获取输出颜色,然后将其分配给Button
。仅在以下情况下使用输出颜色:ColorUtility.TryParseHtmlString
返回真。
该代码应如下所示:
string htmlValue = "#FF0000";
Button btn = GetComponent<Button>();
Color newCol;
if (ColorUtility.TryParseHtmlString(htmlValue, out newCol))
{
btn.image.color = newCol;
}
要将颜色转换回十六进制:
Color newCol = Color.red;
string htmlValue = ColorUtility.ToHtmlStringRGBA(newCol);
所以没有办法只分配十六进制颜色而不检查它
可以先转成RGB吗?
有。去除if
陈述。
ColorUtility.TryParseHtmlString(htmlValue, out newCol);
btn.image.color = newCol;
不要这样做作为你的Color
结果可能是错误的。你应该用if
就像我在第一个代码中所做的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)