Search Issue Tracker
By Design
Votes
0
Found in
2021.3.21f1
2022.2.11f1
2023.1.0b8
2023.2.0a6
Issue ID
UUM-30776
Regression
No
Bones are altered before an animation when using keepAnimatorStateOnDisable()
Reproduction steps:
1. Open the “Timeline 2D Bones Root Motion Animation Test” Project
2. Open the “Assets/Scenes/SampleScene.unity” Scene
3. Enter the Play Mode
4. Press the “Play Timeline” button and observe the animation
Expected results: The animations are played smoothly
Actual results: The Unit1 GameObject’s bones are altered before each animation
Reproducible with: 2021.3.21f1, 2022.2.11f1, 2023.1.0b8, 2023.2.0a6
Could not test with: 2020.3.46f1 (Problem detected while importing the Prefab file: 'Assets/Units/Unit1/Unit1.prefab'. The file might be corrupt or have missing nested Prefabs)
Reproducible on: Intel MacOS 13.2.1
Note: Uncommenting line 19 in the “Assets/Scripts/TimelineAbility.cs” Script prevents the issue
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
- Shader Graph skybox material is rendered inccorrectly in builds when "Allow Material Override" or "Cast Shadows" are enabled and the "Deferred" Rendering Path is used
- Object motion is affected by incorrectly added rotation motion when importing animations
- Base class's Context Menu method is called when calling it in the Editor from the child class and the child class overrides this method
- Editor crashes with prompt "The file 'MemoryStream' is corrupted! Remove it and launch unity again! [Position out of bounds!]" when adding a serialized field to a precompiled DLL
- Android Player freezes waiting for a texture upload when AssetBundle.LoadFromFile is used
Resolution Note:
The documentation on keepAnimatorStateOnDisable is confusing and needs to be fixed, but the true behaviour is to restore the values from when the animated GameObject was initialized, which are called default values, and not the last animated values. The problem in the project is that playing that specific timeline upon pressing the button actually changes the current set of transforms being animated. That means the default values, which maps to the previous set of transforms, are not compatible anymore with this new set. So applying these default values leads to the alteration mentioned in the issue, since the values are not applied to the right transforms.