I have a 2.5 physics game with a simple setup where a Rigidbody platform is suspended from the ceiling using a Configurable Joint with a Limit on its X and Y positions. It’s meant to act like a rope, but very very simple. Something like this:
I used to be on Unity 2022.3.25f1 and everything was fine. Since I have upgraded to Unity 6 however, this suspended platform has gotten very, very jittery. It shakes visibly and the character visibly shakes when standing on it.
I’ve just looked into it and noticed that even in the simple case of a cube suspended by a Configurable Joint with nothing else going on (just 1, without 2), does the following:
In Unity 2022.3.25f1:
Does not jitter. Rigidbody sleeps.
In Unity 6000.0.66f2:
Jitters visibly. Rigidbody does not sleep.
I have a few questions about this:
- What change could have caused this behaviour to occur? My guess is the secret PhysX upgrade in Unity 6.0, it has caused problems for me before
- Is there any chance of this being fixed in the short-term (say, within a year)
- Are there any reasonable workarounds to fix this issue?
I don’t have very good ideas for how to work around this issue. I neither want to downgrade back to a years old Unity version nor do something like increase physics solver steps for the entire project (that would make physics slower for the entire game, I don’t think that’s worth it).
Surely if this simple use case goes wrong, physics-based games will notice even more problems in more advanced use cases?
I have filed a bug report. I don’t have a link to it yet, I haven’t received a confirmation mail. I can update the post with a link to the bug report when I receive confirmation.
I have a nice repro project. You can just press play and see that it’s stable, upgrade to Unity 6000.0.66f2, play again, and see that it’s not stable.
Suspended Physics Object Test.zip (285.6 KB)
