- Home /
ParticleAnimator doesn't change color of particles in ParticleSystem(Shuriken)
Hello. I'm new to Unity and I'm using C# (I'm a .NET developer). I have a generic List< T > of ParticleSystem elements (Shuriken) , and I need to change the color of the particles. First, I had this code:
ListShuriken[i].startColor = new Color(fValues[0], fValues[1], fValues[2]);
Where, ListShuriken is my List< T >, and fValues are the float values for RGB custom color.
But with this, the particles that were emitted BEFORE this instruction is executed doesn't update their color, only the new ones are created with the new color. And I need to change all the particles, new and old ones.
So, after reading a few answers in UDN, I wrote a new code:
m_color = ListShuriken[i].GetComponent<ParticleAnimator>().colorAnimation;
m_color[0] = new Color(fValues[0], fValues[1], fValues[2], 1);
m_color[1] = new Color(fValues[0], fValues[1], fValues[2], 1);
m_color[2] = new Color(fValues[0], fValues[1], fValues[2], 1);
m_color[3] = new Color(fValues[0], fValues[1], fValues[2], 1);
m_color[4] = new Color(fValues[0], fValues[1], fValues[2], 0);
ListShuriken[i].GetComponent<ParticleAnimator>().colorAnimation = m_color;
The first time I ran this, I had the NullReferenceException. The compiler couldn't find ParticleAnimator.
So, in Unity IDE, with my ParticleSystem selected in the Hierarchy panel, I made click on Component\\Effects\\LegacyParticles\\Particle Animator, and in the inspector panel a ParticleAnimator panel were created. All this was luck, I didn't know what was I doing.
So, after this, there were no errors when running the game. But, the color of the particles is not being updated.
With the game running, when I select a particlesystem in the Hierarchy panel, and in the Inspector panel the ParticleAnimator is expanded, there are 5 fields 'ColorAnimation[]' and I can see that the color I'm assigning to the particles is displayed correctly. But not in the scene panel, there, the particles still white.
I'd like to know, what am I missing? What am I doing wrong?
I have searched, but can't find anything about the 'Color over lifetime' module throug scripting.
If you need more data, just ask.
Thanks!