首页 > 解决方案 > 为什么在统一编辑器窗口脚本中制作新的颜色实例时它不会改变颜色?

问题描述

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; 

它会将其更改为红色,问题是颜色没有所有颜色,只有一些颜色。

标签: c#unity3d

解决方案


对于您的情况:

GUI.color = new Color(255f/255f, 182f/255f, 193f/255f);
  1. 颜色RGB值范围为0~1
  2. Color32 RGB值范围为0~255

所以你可以使用 0~255 的 Color32 或 0~1 的使用 Color;


推荐阅读