【问题标题】:Trying to change color with a script in Unity - SpriteRenderer.color doesn't work尝试在 Unity 中使用脚本更改颜色 - SpriteRenderer.color 不起作用
【发布时间】:2019-08-03 11:02:18
【问题描述】:

我是一个新的统一并试图通过脚本改变精灵的颜色。 我正在关注本教程页面: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

脚本似乎使检查员与场景断开连接。 这是一个错误吗?还是我在这里遗漏了什么?

谢谢你:)

【问题讨论】:

  • 您使用的颜色的 alpha 设置为 0f(透明),可能是这样,但不确定。
  • akaBase 你是对的!!!非常感谢!

标签: c# unity3d


【解决方案1】:

解决了!

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

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

【讨论】:

    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2022-08-23
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多