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.
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
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:
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.
@mandinga90 I had this same problem but when I used ps.Play() in Start it worked but not in Update(). Therefore I think that it is not a bug but a feature. A recall of Play() restarts the cycle before the emissions have got out of the starting blocks. So the check it was playing before calling Play() worked for me.
I had the same problem after experimenting a lot I found-
Connecting the particle system first with the game object and then dragging into (serializefield) where you set the particleSystem makes it work perfectly fine.
This answer may not help (at least for 3d games), but I had the same problem and thought that the Particle System was broken. Then I realized that when creating a new Particle System, it was created on the Z axis with -50. I moved it close to the camera and DONE. Being so far from the camera, I couldn’t see it.