Как получить разницу между цветами в процентах в 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)