Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

ColorUtility.TryParseHtmlString

Объявление

public static bool TryParseHtmlString(string htmlString, out Color color);

Параметры

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; }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3