繁体   English   中英

如何在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会自动设置为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(除非我弄错了)。

这是相当正常的,考虑到Color使用浮点颜色,取值范围从0到1。

由于您的值是四舍五入的,它们最终都是1,在您的情况下会导致纯白色。

如果您希望使用0-255范围的颜色,则应使用Color32

似乎上面的代码曾用于旧版本的Unity。 但是,在Unity 2017中,它无法正确更改“startColor”。

我甚至感到惊讶的是,它在以前的版本中完全有效。 请注意,您拥有的是未定义的行为。

颜色取01值, Color32取值范围为0255

您仍然可以使用Color来使用0255范围,但除以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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM