- Home /
ParticleSystem GetParticles returns 0
Hi guys
I'm writing a PointCloud component using Unity's Shuriken particle system.
I'm getting some pretty decent results so far, but there is one issue that is still causing me problems: calling GetParticles immediately after SetParticles seems to always return 0.
Debug.Log("Setting particles: " + particles.Length.ToString());
this.particleSystem.maxParticles = particles.Length;
this.particleSystem.SetParticles(particles, particles.Length);
ParticleSystem.Particle[] resulting =
new ParticleSystem.Particle[particles.Length];
Debug.Log("Resulting particles: " + this.particleSystem.GetParticles(resulting));
The above code will print logs such as:
Debugging the length of the resulting array will print the same count of 0.
Can anyone explain to me why this is?
I presume ParticleSystem is designed to build the particles on the next render call or something like that, but I'd expect at least some kind of internal cache to get returned.
Thanks, Ves
I've been able to workaround the issue by emitting one particle before setting particles:
this.particleSystem.maxParticles = particles.Length;
if (particles.Length > 0)
this.particleSystem.Emit(1);
this.particleSystem.SetParticles(particles, particles.Length);
Seems to be working fine for now, but I'd still like to know why this is necessary.
Your answer
Follow this Question
Related Questions
Shuriken particle System - change velocity by trigger 0 Answers
Shuriken Texture Sheet Animation How to choose Random Row Between 2 Constants? 0 Answers
Emulate Editor's Particle Scrubbing Functionality in Game 1 Answer
ParticleSystem position bug on mobile devices? 4 Answers
Turn on Shuriken "Simulate" from script in Edit mode? 1 Answer