同时更改列表中游戏对象的颜色

Posted

技术标签:

【中文标题】同时更改列表中游戏对象的颜色【英文标题】:Changing color of Game Objects in a list at the same time 【发布时间】:2021-01-18 23:29:04 【问题描述】:

所以我有一个完整的游戏对象列表。我想同时改变它们的颜色。我现在的做法是使用 2 个 for 循环逐个更改每个游戏对象的颜色,但我需要同时更新它。这是我的代码

        yield return new WaitForSeconds(2.3f);
        var places = GameObject.FindGameObjectsWithTag("ground");
            for (int i = 0; i <= GOlist.Count; i++)
            
                renderer = GOlist[i].GetComponent<SpriteRenderer>();
                Color c = renderer.material.color;
                for (float s = 0.28f; s <= 1f; s += 0.02f)
                
                    c.r = s;
                    c.g = s;
                    c.b = s;

                  renderer.color = c;


                yield return new WaitForSeconds(0.01f);
                
            

【问题讨论】:

好吧,不要让它在循环中等待。因为它将在每个之间等待 【参考方案1】:

只需交换 for 循环...

var places = GameObject.FindGameObjectsWithTag("ground");
for (float s = 0.28f; s <= 1f; s += 0.02f)

    for (int i = 0; i <= GOlist.Count; i++)
    
        renderer = GOlist[i].GetComponent<SpriteRenderer>();
        Color c = renderer.material.color;
        c.r = s;
        c.g = s;
        c.b = s;
        renderer.color = c;
    
    yield return new WaitForSeconds(0.01f);

【讨论】:

以上是关于同时更改列表中游戏对象的颜色的主要内容,如果未能解决你的问题,请参考以下文章

在 Allegro 5 运行时更改基元的颜色

动态更改 NatTable 中的行颜色

在 Javascript/JQuery 中选择单选选项时,是不是可以动态更改下拉列表的颜色或更改列表项的颜色?

动森凉棚怎么改颜色

如何更改 SwiftUI 列表中分隔符的颜色?

如何更改 nativescript-vue 中列表项的颜色/背景颜色?