Как получить разницу между цветами в процентах в Unity?

Задача состоит в том, чтобы получить конкретный стандартизованный цвет (он будет с 100% желаемой чистотой) путем смешивания различных предложенных цветов. Я мог бы сравнить их параметры RGB и посмотреть, соответствует ли смесь эталону (true/false). Однако условие состоит в том, что могут быть разные оттенки желаемого цвета. Некоторые из этих оттенков близки к эталонным (где-то на 90% или 80% похожи), а некоторые нет (60% и ниже). Таким образом, если цвет имеет по крайней мере 80% сходства, вы выигрываете, ниже этого значения - вы проигрываете. Я просто не могу понять, как сделать эту проверку цвета в процентах.

Пример:

Есть массив с множеством возможных цветов для смешивания:

Color[] aColors = { new Color(1f, 1f, 0f), new Color(0.3f, 0.9f, 0f),
                   new Color(1f, 0.6f, 0f), new Color(1f, 0f, 0f),
                   new Color(0.5f,0f,0f), new Color(0.5f, 0f, 0.9f),
                   new Color(0f, 0.3f, 0f)};

Эталонный цвет - лаймовый:

Color(0.43f,0.74f,0f)

Правильный выбор смеси из массива следующий (смешение желтого и зеленого):

resutColor = aColors[0] + aColors[1]/ 2

При смешивании оттенка темно-красного с зеленым также получается несколько салатовый цвет, и это следует учитывать, указывая, насколько результат близок к эталонному оттенку в процентах.

Темно-красный цвет:

new Color(0.5f,0f,0f)

Ответы (0 шт):