【问题标题】:The color gets changed via script but doesn't get updated in game颜色通过脚本更改但不会在游戏中更新
【发布时间】:2022-12-17 14:41:02
【问题描述】:

我有一条简单的线,基本上根据 3 个颜色值切换灯光颜色。

GameObject.Find("Directional Light").GetComponent<Light>().color = new Color(color.R, color.G, color.B, 255);

但是当我实际使用它时(我这样做是为了在我按 C 时触发它),颜色值本身会发生变化,但直到我通过检查器手动更改它时它才会更新。

如果有人知道我该如何解决它,我将不胜感激。

相机背景颜色也是一样,我真的不确定是我在更改颜色方面做错了什么,我没有做必须做的事情才能更新,或者它只是没有那样工作。

我尝试使用匹配的颜色值更改颜色属性。它应该已经更改并更新,以便可以在游戏中观察到更改,但是新颜色值存储在检查器的颜色菜单中,并且在我实际手动更改之前不会更改。没有错误,颜色确实出现在检查器中,只是没有更改。

【问题讨论】:

  • color.R, color.G, color.B的值应该设置在0f-1f之间。
  • @WillardPeng 谢谢,我不得不将所有颜色值除以 255,它起作用了。

标签: c# unity3d


【解决方案1】:

试试这个 :

GameObject.Find("Directional Light").GetComponent<Light>().color = new Color(4, 191, 4, 255);

【讨论】:

    【解决方案2】:

    由于Color 只接受从 0 到 1 的值,颜色值必须除以 255

    所以,这将是 color.R/255, color.G/255, color.B/255

    【讨论】:

      猜你喜欢
      • 2019-01-03
      • 2014-12-16
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2023-02-07
      • 2022-11-24
      • 1970-01-01
      相关资源
      最近更新 更多