Параметры
htmlString | Строка html без учета регистра, которая будет преобразована в цвет. |
color | Преобразованный цвет. |
Возвращает
bool true, если строка была успешно преобразована, иначе false.
Описание
Попытка преобразовать строку цвета HTML.
Строки, начинающиеся с "#", будут обрабатываться как шестнадцатеричные следующим образом:
#RGB (становится RRGGBB)
#RRGGBB
#RGBA (становится RRGGBBAA)
#RRGGBBAA
Если значение альфа-канала не указано, по умолчанию будет использоваться значение FF.
Строки, не начинающиеся с '#', будут обрабатываться как буквенные цвета со следующими поддерживаемыми параметрами:
красный, голубой, синий, темно-синий, голубой, фиолетовый, желтый, лайм, фуксия, белый, серебристый, серый, черный, оранжевый, коричневый, темно-бордовый, зеленый, оливковый, темно-синий, бирюзовый, цвет морской волны, пурпурный.
В следующем примере создается пользовательский PropertyDrawer, который позволяет пользователю вводить цвета HTML. Эта панель свойств может отображаться в инспекторе, если свойство цвета имеет атрибут ColorHtmlProperty.

// This is not an editor script.
using UnityEngine;
public class ColorHtmlPropertyAttribute : PropertyAttribute
{
}
// This is an editor script and should be placed in an 'Editor' directory.
using UnityEngine;
using UnityEditor;
[CustomPropertyDrawer(typeof(ColorHtmlPropertyAttribute))]
public class ColorHtmlPropertyDrawer : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
Rect htmlField = new Rect(position.x, position.y, position.width - 100, position.height);
Rect colorField = new Rect(position.x + htmlField.width, position.y, position.width - htmlField.width, position.height);
string htmlValue = EditorGUI.TextField(htmlField, label, "#" + ColorUtility.ToHtmlStringRGBA(property.colorValue));
Color newCol;
if (ColorUtility.TryParseHtmlString(htmlValue, out newCol))
property.colorValue = newCol;
property.colorValue = EditorGUI.ColorField(colorField, property.colorValue);
}
}
// This shows how we would use the PropertyDrawer.
using UnityEngine;
public class Example : MonoBehaviour
{
[ColorHtmlProperty]
public Color htmlColor = Color.green;
public Color standardColor = Color.green;
}