【问题标题】:Change colour of text component during runtime based on the background colour of that component在运行时根据该组件的背景颜色更改文本组件的颜色
【发布时间】:2017-05-09 20:43:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# colors runtime unity2d


    【解决方案1】:

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

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

    【讨论】:

    • 比我想的任何事情都少了很多麻烦,这会很有效!
    猜你喜欢
    • 2016-06-02
    • 2011-11-22
    • 2021-03-15
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多