【发布时间】:2018-11-10 11:06:16
【问题描述】:
我正在尝试更改 Unity 2017 中 ParticleSystem 的“startColor”字段。
我尝试在 C# 中以 2 种不同的方式编写代码。
第一种方式是:
ParticleSystem.MainModule settings =
GetComponent<ParticleSystem>().main;
settings.startColor = new Color(9, 251, 122, 128);
第二种方式是:
GetComponent<ParticleSystem>().startColor = new Color(9, 251, 122, 128);
但是,在这两种情况下,当我运行代码时,startColor 会自动设置为 WHITE,即 (255, 255, 255, 128)。
上面的代码似乎可以在旧版本的 Unity 中运行。但是,在 Unity 2017 中,它无法正确更改“startColor”。
请告诉我如何解决它。谢谢。
PS:
这是 Unity 论坛中完整的原始问题和答案(使用正确的 C# 语法):https://answers.unity.com/questions/604246/how-to-change-the-color-of-particle-system.html
请注意,该解决方案似乎适用于较旧版本的 Unity,但不适用于 Unity 2017(除非我弄错了)。
【问题讨论】:
-
仔细检查它没有在检查器的任何地方设置,因为它会覆盖你的脚本!
-
你在哪里执行这段代码?在开始?苏醒?一些功能?
-
我把这段代码放在了 Update() 方法中。我可以看到 Update 方法被频繁调用,因为我将 Debug.Log() 放在该方法中。因此,我确信代码的调用频率与 Update() 方法一样频繁。 (原因,我把代码放在 Update() 里面是为了以后,我想每 2 或 3 秒更改一次颜色。)
-
@TJ Wolschon:在粒子系统的检查器中,最初我将 startColor 设置为 GREEN。现在,如果我不调用我的脚本,那么 startColor 将保持绿色,这是正确的。但是,一旦我调用我的脚本,startColor 就会变为 WHITE,这是错误的,因为我没有在上面显示的脚本中将 startColor 设置为 WHITE。
-
"如何在 StackOverFlow 的 "" 中键入 "ParticleSystem"?" 将代码放在两个 ` 或花括号按钮之间在屏幕上自行插入。见this帖子
标签: c# unity3d colors particle-system