- Home /
ParticleSystem.Play() does not play particle.
So, I have a Shuriken particle that works fine when I clicked "Simulate" button during the edit time. However, when I try to play this particle using "particleSystemComponent.Play()" via a c# code, it does not emit any particle. Using a debug log, I found out that
particleSystemComponent.time is always at zero.
particleSystemComponent.particleCount is zero. (So, yeah, it did not emit any particle after Play() is called)
particleSystemComponent.isPlayed is true. (It is playing but the time is always at zero...why?)
Nevertheless, if I use "particleSystemComponent.Emit(1)" instead of "particleSystemComponent.Play()", a single particle will be emitted and the time will start running until the particle ends and the time will stop again. However, "Emit(1)" is not a proper way to spawn particle since it will not spawn a correct series of particle. Is there any solution to make the "Play()" method working? Thank you for your suggestion.
Answer by TB_BSG · Jul 03, 2014 at 12:56 PM
Had a similar problem. I think the problem is if you ever call Play() or Stop() without checking if it is playing already.
pS.Play();
...
pS.Stop();
...
pS.Stop();
...
pS.Play();
Caused the particle system to start running again but not emitting particles if for some reasone. With ... I mean that other code was executed and the functions where called in different updates!! The following code does restart the emission
if(!pS.isPlaying) pS.Play();
...
if(pS.isPlaying) pS.Stop();
...
if(pS.isPlaying) pS.Stop();
...
if(!pS.isPlaying) pS.Play();
its the real cause :D saved me a lot of headache :D thanks buddy :D
It did not work for me... I had to do the GameObject setactive thing...
I have been trying to figure this out for half a day. You sir are my hero.
Second time this has happened to me in three months, should have learnt my lesson the first time around! Always check the animation is stopped first
Answer by oinkoinkflapflap · Aug 05, 2014 at 12:11 PM
Almost a year old this post i know, but I had the same thing. I couldn't work out why it wouldn't emit, the only way i could make it work was just to have PlayOnStart checked, and the object inactive, then set active later (particleSystemObject.SetActive(true);) and it works fine:
Hope this helps, sorry for the years wait ;)
Thank you, @oinkoinkflapflap. I had a particle system the wouldn't play from just particleSystem.Play(), so I set it to Play On Awake, turn it off in the scene, and just fire particleSystem.gameObject.SetActive(true); when I want to play the particle system.
Same for me, this was the only way I could get it to work.
Bizarre! It also happened to me! Lost a lot of time trying to understand why the dammed Play() function did not work!
Hope they solve this bug soon!
Actually, I got a much better result using SetActive(false)
and SetActive(true)
, too. You'll see that it's much faster in reaction and works fluently! ;)
The problem with SetActive is 'popping'. We usually want to ease our effects in and out over time, gradually. SetActive is too sudden.
Answer by SanX91 · Aug 13, 2013 at 11:29 AM
just make a particle system, as u want.... then through code ....
Example : -
void Start() {
ParticleSystem pS = GetComponent<ParticleSystem>();
pS.enableEmission = true;
}
Attach this code to the particle system....
Answer by Kerihobo · Aug 18, 2015 at 10:37 AM
i had the same problem. What was more confusing is that the particle system that wasn't working was duplicated from one that WAS working. I logged .isPlaying before/after .Play().
it logged false. it logged true.
Yet it wouldn't render, no idea why. Anyway, i moved it's place in the hierarchy, then moved it back again... suddenly it worked fine.
Answer by KarlKarl2000 · Mar 14, 2018 at 02:52 AM
Thank goodness for the forums, the documentation is lacking sometimes.
I did similar what was done here, but more brute forced.
void Start ()
{
_particle00 = GetComponent<ParticleSystem>();
}
void SFX ()
{
_particle00.Stop();
_particle00.Play();
}
Hope this helps someone out there.
Sharin' is carin'
@indiedoroid
Your answer
Follow this Question
Related Questions
Particle delay 1 Answer
Particles do not appear on play but do on emit 0 Answers
Particle Emitter Breaks in emission. Help? 1 Answer
How to make windswept snow on mountains? 0 Answers
Scale Shuriken Particle System with Parent Transform 5 Answers