Search Issue Tracker
AnimationCurve.Evaluate() makes glitchy animation when used with System.Threading.Tasks.Parallel.For()
How to reproduce:
1. Download, extract and open user's attached project (New Unity Project.zip)
2. Open 'Scene'
3. Select 'NoiseViewer' object in the Hierarchy and in the 'Noise (Script)' component, change Scale to 50 to see the issue more clearly
4. Enter Play mode
5. Move around the X coordinate in the same component to see the issue
Expected result: Animation displays normally
Actual result: Glitchy green lines are appearing over the animation
Reproduced with: 2018.3.3f1, 2019.1.0a14, 2019.2.0a1
AnimationCurve implementation is not thread safe. It uses a cache internally to speed up calculation and this will not behave properly when called concurrently. While you may evaluate a curve in a thread, you may not evaluate the same curve in multiple threads.
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
- [Scripting] Input Action fails to re-enable after disabled.
- [MacOS] "Bloom" does not work in Standalone Build
- Mesh.CombineMeshes result has different normals if the original mesh has tweaked normals and scale
- [Hub] In licence error screen https://unity3d.com/unity/err/license redirects to not found website
- QualitySettings.streamingMipmapsMemoryBudget is always clamped down to 4096 MB even on 64-bit systems