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
- Objects with Universal Render Pipeline/Particles/Lit shader are always lit up when changing their Rendering Layer Mask
- PolySpatial “Trying to set shader on a Material Variant.” error is printed in the console when entering Play Mode
- Error “Shader error in 'YSCloudCover': call to 'tex3D' is ambiguous at Assets/YSCloudCoverText.shader(606) (on d3d11)“ is present when compiling tex3D shader with DXC
- Placeholder asset is not loaded with Advertisement Legacy sample when using the latest version of the package
- Addressables content build fails but the Player build is successful when building a development build
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.