Search Issue Tracker
Fixed
Fixed in 2022.3.61f1, 6000.0.44f1, 6000.1.0b12, 6000.2.0a8
Votes
0
Found in
2022.3.58f1
6000.0.41f1
6000.1.0b9
6000.2.0a6
Issue ID
UUM-99113
Regression
Yes
Particle System doesn't always play when ParticleSystem.Play() is called
Reproduction steps:
1. Open the attached “IN-94788 Particle Emission Bug - FAV.zip“ project (link in the internal comments)
2. Open the “Particles” scene
3. Go to the Game view (make sure the “Particle System” GameObject is not selected in the Hierarchy)
4. Enter Play mode
5. Observe the Game view
Expected result: The “Particle System” GameObject is emitting particles
Actual result: No particles are being emitted
Reproducible with: 2022.1.0a13, 2022.1.24f1, 2022.2.21f1, 2022.3.58f1, 6000.0.41f1, 6000.1.0b9, 6000.2.0a6
Not reproducible with: 2021.3.49f1, 2022.1.0a12
Reproduced on: Windows 11 Pro (23H2)
Not reproduced on: No other environment tested
Notes:
- The issue reproduces randomly about 50-70% of the time
- The issue reproduces the most often when entering Play mode while already being in the Game view, and the “Particle System” GameObject() is not selected in the Hierarchy
- Even though the Particle System is not emitting particles, ParticleSystem.isPlaying and ParticleSystem.isEmitting are returning “True”
- If the user moves from the Game view to the Scene view during Play mode, the “Particle System” starts emitting particles (sometimes, selecting any of the GameObjects in the Hierarchy or any of the assets in the Project window can also trigger particle emission)
- Reproducible in a new project
- Reproducible in the Player (reproduced 100% of the time during testing)
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Channel remapping dropdown in the Terrain Layer does not open when clicked on the title
- The Editor freezes indefinitely when a large number of elements are entered in the Subgraphs or Categories lists
- Some Visual Effects package Assets links to documentation are not working
- Heatmap asset’s documentation button in the Inspector window leads to “Sorry... that page seems to be missing!” page when clicked
- Crash on MonoBehaviour::CallMethodIfAvailable when performing various actions
Resolution Note:
When calling Play() from script, there can be 2 outcomes, as the documentation describes:
- If the system is paused or stopped, the system will start playing
- If the system is already playing, the system will do nothing
The issue described by the user occurs when Play() is invoked continuosly, before the particle system had time to spawn a particle.
In that case, the system consider that it is not playing, and restarts all the time counters again. If this happens every frame, the system will never show anything.
However, if the system was able to spawn a particle (longer delta time for a frame, or higher emission rate) the particle system will continue to play normally afterwards.
Please notice that this issue is more likely to appear with smaller Emission > Rate Over Time values, that require longer time to spawn the first particle.
To avoid running into this situation, please make sure to invoke Play() only when we want to start, or invoke Stop() before Play() if we want to restart.
Duplicate of https://issuetracker.unity3d.com/product/unity/issues/guid/UUM-46393
Resolution Note (fix version 6000.2.0a8):
Added a line to the API documentation of ParticleSystem.Play(), to clarify this behavior:
**Note**: If you invoke this function again before the particle system has had time to spawn a particle, the particle system restarts its internal counters. This means that if you invoke this function continuously, a particle system with a low emission rate will never start to play.
Resolution Note (fix version 6000.1.0b12):
Added a line to the API documentation of ParticleSystem.Play(), to clarify this behavior:
**Note**: If you invoke this function again before the particle system has had time to spawn a particle, the particle system restarts its internal counters. This means that if you invoke this function continuously, a particle system with a low emission rate will never start to play.
Resolution Note (fix version 6000.0.44f1):
Added a line to the API documentation of ParticleSystem.Play(), to clarify this behavior:
**Note**: If you invoke this function again before the particle system has had time to spawn a particle, the particle system restarts its internal counters. This means that if you invoke this function continuously, a particle system with a low emission rate will never start to play.
Resolution Note (fix version 2022.3.61f1):
Added a line to the API documentation of ParticleSystem.Play(), to clarify this behavior:
**Note**: If you invoke this function again before the particle system has had time to spawn a particle, the particle system restarts its internal counters. This means that if you invoke this function continuously, a particle system with a low emission rate will never start to play.