Мне было интересно, можно ли изменить цвет текстового компонента, например. «Здоровье», в зависимости от цвета фона во время выполнения. Под цветом фона я не имею в виду фиксированный цвет фона компонента, когда он был создан, я имею в виду фактический цвет, расположенный за самим текстовым компонентом. Целью этого было бы позволить тексту соответствующим образом контрастировать при размещении перед более темными или более светлыми оттенками - в идеале мне нужно только текст, чтобы изменить цвет на белый или черный в зависимости от цвета фона.
Единственный способ, который я мог представить, - это прикрепить к тексту компонент Collider2D, который вызывает метод OnTriggerEnter2D всякий раз, когда обнаруживается более темный оттенок. Чтобы добиться этого, я подумал о назначении тегов тем слоям сцены, которые требуют настройки для достижения более подходящего уровня контраста. Я приложил свое предлагаемое решение ниже, хотя из-за его характера столкновения я не думаю, что это возможно, я приветствовал бы любые предложения. Спасибо.
void OnTriggerEnter2D(Collider2D collide){
if(collide.gameObject.tag == "ColourContrast"){
hpText.color = new Color (1, 1, 1, 1);
}
}