Почему в скрипте окна редактора единства при создании нового экземпляра Color он не меняется на цвет? - PullRequest
1 голос
/ 04 июля 2019
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; 

Это изменит его на красный, проблема в том, что у Color не все цвета, а только некоторые.

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Для вашего случая:

GUI.color = new Color(255f/255f, 182f/255f, 193f/255f);
  1. Диапазон значений RGB цвета составляет 0 ~ 1
  2. Диапазон значений RGB Color32 составляет 0 ~ 255

Таким образом, вы можете использовать Color32 на 0 ~ 255 или использовать цвет на 0 ~ 1;

0 голосов
/ 05 июля 2019

Решение состоит в том, чтобы использовать 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...