Over the last week I also had a look at some of the Unity 5 physics bugs I mentioned in an earlier post.
It turns out the rigidbody freezing bug only happens when I modify a rigidbody’s mass properties (i.e. mass, inertia tensor etc.) I was quite easily able to repro this in a very simple project, so I’ll send this off to Unity when I get a chance.
After browsing the Unity forums I found out that hinge joint motors not working is caused by the motor not waking up the rigidbody. As a temporary solution, if you force the rigidbody to wake up every update, the motor works. I also found I had to multiply my torque values by a factor of around 50 to get similar behaviour to that in Unity 4.6.
Velocity drives definitely aren’t working for me. Again, I was able to repro this in a very simple project. One for another bug report.
I haven’t had a chance yet to look at the hinge joint limit and OnCollisionExit issues, but I’ll keep chipping away at these next week. I also noticed that my gears don’t seem to be working properly, sometimes the gears (particularly rack gears) get stuck. I checked and the configurable joints I’m using for the gear constraints do still seem to be updated correctly, so I’m not sure what’s changed here. I always was concerned I’d find some slightly different behaviour in Unity 5 with PhysX 3.3 that would unavoidably break the delicately tuned physics setup in my game, and this may be evidence of that. Let’s hope not, more investigation required!