C# 为什么在unity编辑器窗口脚本中创建新的颜色实例时它';什么颜色不变?
这会将颜色更改为粉红色:C# 为什么在unity编辑器窗口脚本中创建新的颜色实例时它';什么颜色不变?,c#,unity3d,C#,Unity3d,这会将颜色更改为粉红色: void DrawItemBackgroundColor(Rect bgRect) { if (Event.current.type == EventType.Repaint) { Color oldColor = GUI.color; GUI.color = new Color(255, 182, 193);
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);
它会将其更改为红色。问题是颜色不是所有颜色,只有一些颜色。解决方案是使用Color32:
GUI.color = Color.red;
这条线的颜色为淡粉色:
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);
因此,您可以按0~255使用Color32或按0~1使用Color如果你只想要背景色,你可以考虑使用<代码> GUI。
GUI.color = new Color(255f/255f, 182f/255f, 193f/255f);