void DrawItemBackgroundColor(Rect bgRect)
{
if (Event.current.type == EventType.Repaint)
{
Color oldColor = GUI.color;
GUI.color = new Color(255, 182, 193);
var rect = bgRect;
rect.height = Styles.headerBackground.fixedHeight;
Styles.headerBackground.Draw(rect, false, false, false, false);
rect.y += rect.height;
rect.height = bgRect.height - rect.height;
Styles.background.Draw(rect, false, false, false, false);
GUI.color = oldColor;
}
}
这应该将颜色更改为粉红色:
GUI.color = new Color(255, 182, 193);
但是它什么也没做。
但是,如果我在做:
GUI.color = Color.red;
它将更改为红色,问题是“颜色”仅包含某些颜色,而并非所有颜色。
答案 0 :(得分:1)
对于您的情况:
GUI.color = new Color(255f/255f, 182f/255f, 193f/255f);
因此您可以在0〜255之间使用Color32或在0〜1之间使用Color;
答案 1 :(得分:0)
解决方案是使用Color32:
void DrawItemBackgroundColor(Rect bgRect)
{
if (Event.current.type == EventType.Repaint)
{
Color oldColor = GUI.color;
GUI.color = new Color32(255, 182, 193,100);
var rect = bgRect;
rect.height = Styles.headerBackground.fixedHeight;
Styles.headerBackground.Draw(rect, false, false, false, false);
rect.y += rect.height;
rect.height = bgRect.height - rect.height;
Styles.background.Draw(rect, false, false, false, false);
GUI.color = oldColor;
}
}
此行使它变为浅粉红色:
GUI.color = new Color32(255, 182, 193,100);