1

我想知道是否可以根据运行时的背景颜色更改文本组件的颜色,例如“健康”。背景颜色并不是指组件创建时的固定背景颜色,而是指位于文本组件本身后面的实际颜色。这样做的目的是让文本在放置在较深或较浅的阴影前面时进行适当的对比 - 理想情况下,我只需要根据背景颜色将文本颜色更改为白色或黑色。

我能想到的唯一方法是将 Collider2D 组件附加到文本上,每当检测到较暗的阴影时,它就会调用 OnTriggerEnter2D 方法。为了实现这一点,我想为那些需要调整以实现更合适的对比度级别的场景图层分配标签。我在下面附上了我提出的解决方案,尽管由于碰撞的性质,我认为它不可行,但我欢迎任何建议。谢谢。

void OnTriggerEnter2D(Collider2D collide){
    if(collide.gameObject.tag == "ColourContrast"){
        hpText.color = new Color (1, 1, 1, 1);
    }
}
4

1 回答 1

1

我的意思是这绝对是可能的,但是如果您想要一个便宜且简单的解决方案,您可以将文本设为白色并带有黑色轮廓,因为我相信您知道这适用于任何颜色的顶部。

Unity 有一个用于文本轮廓的组件。

于 2017-05-09T21:00:07.983 回答