LeCodesdocs

Color

Общий парсер/конвертер цвета. Напрямую его зовёшь редко: везде, где SDK принимает цвет (sprite.color, цвета материалов, UI-стили), берётся ColorInput и внутренне конвертируется через этот модуль. Тянешься к Color напрямую, когда нужна конкретная числовая форма самому — например, скормить упакованный int в uniform шейдера или смешать каналы вручную.

Обзор

TypeScript
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)

TypeScript
'#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
Note

парсятся только hex-строки. CSS-функциональная строка ('rgba(255, 51, 51, 0.8)', 'red') считается некорректной и откатывается к непрозрачному чёрному — исключения не бросает. Для альфы в строке используй форму #rrggbbaa или массив дробных.

Note

упакованный int на входе не несёт альфу — 0xff3333cc читается как 24-битный RGB, не RGBA. Чтобы передать альфу, используй строку ('#ff3333cc') или массив из 4 элементов.

Конвертеры

TypeScript
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.
  • Mathflerp / clamp01 для смешивания каналов, вытянутых через toRgba01.