Search Issue Tracker
Won't Fix
Votes
0
Found in
2021.3.36f1
2022.3.21f1
2023.2.13f1
6000.0.0b11
Issue ID
UUM-67249
Regression
No
The ParticleSystem "simulate" method is inaccurate when simulating a high count (over 100) of particles while in Play mode
Reproduction steps:
1. Open the “PS_test.zip” project
2. Open the “SampleScene” and Enter Play mode
3. Observe the Scene view (expected result)
4. Leave Play mode and select the two Particle Systems in the Scene
5. In the Inspector window, set the Particle Count (Emission > Rate over Time) to 200
6. Enter Play mode again
7. Observe the Scene view
Expected result: “S” (simulated) Particles are closely simulating their “P” (played) Particle counterparts
Actual result: “S” Particles are not aligning with the “P” Particles
Reproducible with: 2021.3.36f1, 2022.3.21f1, 2023.2.13f1, 6000.0.0b11
Reproducible on: Windows 11
Not reproducible on: No other environment tested
Note:
- Only reproducible in Play mode and in Player
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
- [Android] Stage information is not logged when Log Shader Compilation is enabled
- [Vulkan] The memory allocation increases rapidly when there are multiple (three or more) Real-Time Reflection Probes in the Scene
- [macOS] Library folder of the opened project can be deleted which leads to the crash
- “Default Scene” dropdown field contains a spelling mistake “Default Builtin”
- Editor crashes on PPtr<Mesh> after adding Text Mesh and Cloth Components to the same GameObject
Resolution Note:
It seems that the random seed being used for new particles it is not the same if we Simulate more than one frame at a time and there is more than one particle to be spawned per frame. Probably related to complex SIMD code required for efficient initialization.
Although we acknowledge that this is not correct, changing this at this point could affect other functionality.
As a workaround, we recommend to simulate each frame, instead of from restart, using the time difference between the reference system and the simulated system.
Another alternative is to get the state using GetPlaybackState, GetTrailsPlaybackState, and GetParticles.