如何在 C# 中设置 Unity 2017 中的 ParticleSystem "startColor"?
How to set "startColor" of ParticleSystem in Unity 2017 in C#?
我正在尝试更改 Unity 2017 中 ParticleSystem 的 "startColor" 字段。
我尝试在 C# 中以两种不同的方式编写代码。
第一种方式是:
ParticleSystem.MainModule settings =
GetComponent<ParticleSystem>().main;
settings.startColor = new Color(9, 251, 122, 128);
第二种方式是:
GetComponent<ParticleSystem>().startColor = new Color(9, 251, 122, 128);
但是,在这两种情况下,当我 运行 代码时,startColor 自动设置为白色,即 (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(除非我弄错了)。
这很正常,考虑到 Color 使用浮点颜色,取值范围为 0 到 1。
由于您的值四舍五入,它们最终都为 1,在您的情况下会导致纯白色。
如果您希望使用 0-255 范围内的颜色,您应该使用 Color32。
It seems that the code above used to work in older versions of Unity.
But, in Unity 2017, it fails to change "startColor" properly.
我什至惊讶它在以前的版本中完全有效。请注意,您拥有的是未定义的行为。
颜色取 0
到 1
值,Color32
取 0
到 255
值范围。
您仍然可以使用 0
到 255
的颜色范围,但除以 255
settings.startColor = new Color(9 / 255f, 251 / 255f, 122 / 255f, 128 / 255f);
或使用从 Color32
创建 Color
Color color = new Color32(9, 251, 122, 128);
settings.startColor = color;
我正在尝试更改 Unity 2017 中 ParticleSystem 的 "startColor" 字段。
我尝试在 C# 中以两种不同的方式编写代码。
第一种方式是:
ParticleSystem.MainModule settings =
GetComponent<ParticleSystem>().main;
settings.startColor = new Color(9, 251, 122, 128);
第二种方式是:
GetComponent<ParticleSystem>().startColor = new Color(9, 251, 122, 128);
但是,在这两种情况下,当我 运行 代码时,startColor 自动设置为白色,即 (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(除非我弄错了)。
这很正常,考虑到 Color 使用浮点颜色,取值范围为 0 到 1。
由于您的值四舍五入,它们最终都为 1,在您的情况下会导致纯白色。
如果您希望使用 0-255 范围内的颜色,您应该使用 Color32。
It seems that the code above used to work in older versions of Unity. But, in Unity 2017, it fails to change "startColor" properly.
我什至惊讶它在以前的版本中完全有效。请注意,您拥有的是未定义的行为。
颜色取 0
到 1
值,Color32
取 0
到 255
值范围。
您仍然可以使用 0
到 255
的颜色范围,但除以 255
settings.startColor = new Color(9 / 255f, 251 / 255f, 122 / 255f, 128 / 255f);
或使用从 Color32
Color
Color color = new Color32(9, 251, 122, 128);
settings.startColor = color;