Search Issue Tracker
Not Reproducible
Votes
0
Found in
5.4.1f1
Issue ID
836300
Regression
No
[Skinned Mesh Renderer]Adding bones through a script during runtime corrupts the currently rendered mesh
Steps to reproduce:
1. Download and open attached project
2. Press play
3. Observe as the cube mesh gets corrupted
Note: Once this is done, the mesh(in this case "cube") stays corrupted until you relaunch the project.
Note: Adding a skinned mesh renderer of the same mesh after running will also add a corrupted mesh.
Steps to recreate on a new gameobject with a different mesh:
1. Create a new gameobject of a currently not corrupted mesh (ex. sphere)
2. Add Skinned Mesh Renderer component
3. Remove default Mesh Renderer component
4. Add the User's mesh corrupt script to gameobject
5. Press play
6. Observe as the rendered mesh gets corrupted - Added a video in last edit
Note: User's script is based on https://docs.unity3d.com/ScriptReference/Mesh-bindposes.html, except it is modified to to add bones on a created object,rather than a new one.
Expected result: bones are added normally
Actual result: mesh gets corrupted
Reproduced on 5.2.3f1, 5.3.6f1 5.4.1f1, 5.4.1p3, 5.5.0b5
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
- “Remove Unused Overrides” available on not loaded Scene and throws “ArgumentException: The scene is not loaded” warning
- Adaptive Probe Volume occlusion edge is calculated incorrectly when viewing probes near geometry edges
- Sampling a texture using an HLSL file throws shader errors and the code does not compile
- "Graphics.CopyTexture called with null source texture" error when Base Camera of an Overlay Camera is removed with DX11 Graphics API and Compatibility Mode enabled
- WebGL sends wrong value with large numbers when SendMessage function is used
Resolution Note (2019.1.X):
Fixed, but "Bones do not match bindposes" error persists. This can be fixed by resetting the object to its original bindposes in OnDestroy()