Color
Общий парсер/конвертер цвета. Напрямую его зовёшь редко: везде, где SDK принимает цвет
(sprite.color, цвета материалов, UI-стили), берётся ColorInput и внутренне конвертируется через
этот модуль. Тянешься к Color напрямую, когда нужна конкретная числовая форма самому — например,
скормить упакованный int в uniform шейдера или смешать каналы вручную.
Обзор
sprite.color = '#e33' // на цветовых свойствах работает любой ColorInput
const [r, g, b] = Color.toRgb01('#10131a') // [0.062…, 0.074…, 0.101…]
const packed = Color.toPackedRgb([1, 0.5, 0]) // 0xff8000
const css = Color.toHexString(0xff8000) // '#ff8000'Допустимые входы (ColorInput)
'#e33' '#e33c' // сокращённый hex — #rgb / #rgba, каждая цифра удваивается
'#ff3333' '#ff3333cc' // hex — #rrggbb / #rrggbbaa (ведущий '#' необязателен)
0xff3333 // упакованный int 0xRRGGBB — альфа всегда 1
[1, 0.2, 0.2] // [r, g, b] дробные, 0..1
[1, 0.2, 0.2, 0.8] // [r, g, b, a] дробные, 0..1парсятся только hex-строки. CSS-функциональная строка ('rgba(255, 51, 51, 0.8)', 'red')
считается некорректной и откатывается к непрозрачному чёрному — исключения не бросает. Для
альфы в строке используй форму #rrggbbaa или массив дробных.
упакованный int на входе не несёт альфу — 0xff3333cc читается как 24-битный RGB, не RGBA.
Чтобы передать альфу, используй строку ('#ff3333cc') или массив из 4 элементов.
Конвертеры
Color.toRgb01(c): [r, g, b] // дробные 0..1 (альфа отброшена)
Color.toRgba01(c): [r, g, b, a] // дробные 0..1; входы-массивы проходят без потерь
Color.toPackedRgb(c): number // 0xRRGGBB
Color.toPackedRgba(c): number // 0xRRGGBBAA, беззнаковый (безопасно сравнивать/сдвигать)
Color.toHexString(c): string // '#rrggbb' или '#rrggbbaa', когда альфа < 1Смотрите также
- Соглашения — где принимается
ColorInput. - Mathf —
lerp/clamp01для смешивания каналов, вытянутых черезtoRgba01.