尝试使用Unity中的脚本更改颜色-SpriteRenderer.color不起作用

时间:2019-08-03 11:02:18

标签: c# unity3d

我是统一的新手,正在尝试通过脚本更改精灵的颜色。 我正在关注本教程页面:https://www.tutorialspoint.com/unity/unity_coroutines.htm。我正在使用Unity 2019.2.0f1

当按下“播放”按钮时,我可以在检查器中看到颜色每秒都在变化,但是在场景中什么都没有发生

代码:

公共类colorChanger:MonoBehaviour {

public int                 seconds_interval;
public SpriteRenderer     sr;
public Color             color_1;
public Color             color_2;

IEnumerator changeColor(){

    while (true){

        if (sr.color == color_1){
            sr.color = color_2;
        } else {
            sr.color = color_1;
        }

        yield return new WaitForSeconds(seconds_interval);
    }

}

// Start is called before the first frame update
void Start()
{
    sr = gameObject.GetComponent<SpriteRenderer>();
    StartCoroutine( changeColor() );
    //sr.color = color_1;
}

// Update is called once per frame
void Update()
{

}

}

说明和屏幕截图:

这是精灵,请注意它以紫色开头,然后脚本应更改其颜色: https://i.ibb.co/rQy2Lpr/1.jpg

当按下“播放”按钮时,我可以在检查器中看到颜色每秒都在变化,但是在场景中什么也没有发生: 黄色: https://i.ibb.co/DRhcpPT/2.jpg

绿色(1秒后): https://i.ibb.co/Yc0v26K/3.jpg

实际上,检查员完全被场景忽略了!请注意,子画面为白色(而不是紫色/黄色/绿色)。 请注意,如果我更改比例,则“播放”屏幕中什么也没有发生: https://i.ibb.co/sjdCvfw/4.jpg

但是,当我返回“游戏”屏幕(不停止游戏)时,子画面的框架会发生变化,但实际大小不会改变: https://i.ibb.co/R054Rv0/5.jpg

脚本似乎使检查员脱离了场景。 是虫子吗?还是我在这里想念东西?

谢谢:)

1 个答案:

答案 0 :(得分:0)

解决了!

我的问题是:我在UI界面中选择了 Alpha属性为0 的颜色。 所以我看不到任何颜色变化。

我仍然不明白为什么“比例”属性对检查器中的实时变化没有反应,但是选择Alpha值为255(不透明度)的颜色可以解决所有问题。