Хорошо, большое спасибо!

могу изменить цвет кнопки в Unity, используя значения HEX?
Я пробовал это, но это не работает, возможно, я ошибся здесь:

btn.image.color = ColorUtility.TryParseHtmlString(DADADAFF, out color); 
 SLaks26 окт. 2017 г., 21:47
Поскольку он пытается позвонить вам, такой переменной нет. Вы хотите строку
 SLaks26 окт. 2017 г., 21:45
В чем проблема? Что происходит? Вы прочитали ошибку?
 Rumata26 окт. 2017 г., 21:46
@SLaks "не существует в текущем конкурсе".

Ответы на вопрос(1)

Решение Вопроса

btn.image.color).

ColorUtility.TryParseHtmlString возвращаетсяbool не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 утверждение, как я сделал в первом коде.

 Rumata26 окт. 2017 г., 21:58
Хорошо, большое спасибо!
 Rumata26 окт. 2017 г., 21:50
Спасибо! Таким образом, нет способа просто назначить шестнадцатеричный цвет без проверки, что он может быть сначала преобразован в RGB?
 Rumata26 окт. 2017 г., 21:53
Спасибо, я имел в виду, почему мы должны создавать оператор if?
 Programmer26 окт. 2017 г., 21:56
В моем примере мы проверяем,TryParseHtmlString успешно преобразовалhtmlValue (# FF0000) в RGBA / Цвет. Если это так, назначьте его кнопке.

Ваш ответ на вопрос