Drag/Rotate FPS Physics puzzles, I'm struggling to get this working correctly in Unity.

Hey everyone. I’m looking to make a game where the player must use/search the environment around them to find objects. Think of it like the old Fun House TV show in the UK, where you basically go crazy throwing objects everywhere to find the goal ones. You could also watch videos of Eledees (or Elebits depending on your region) to get the idea of what I want.

I’ve been able to ‘drag’ physics objects around like in Skyrim by using Spring and Fixed joints. Spring is a little too unpredictable, objects always ‘sag’ below the cursor. Fixed joints work great but not when I want to say, open drawers/cupboards like in Eledees. It just kind of pulls the object off it’s hinge… So I have pros and cons for both at the moment.

I’ve also had troubles with even simple physics falling through each other, even when set to continuous. E.g. a small brick shaped object constantly just drops out of the small vault I put it in (I have check colliders/rigidbodies and it’s all correct. When I open the door on the vault, it somehow pushes the items inside as well, enough though I can’t see any visible overlaps in the colliders! It’s very bizarre.

I was wondering if anyone had any ideas or resources for doing such a thing in Unity? To recap, I’d like FPS controls with the ability to drag, rotate, pull, push, open, etc objects in a 3D world, and having various physics based puzzles, containers, etc.

My only other idea is to make things like drawers and doors have fixed positions and just ‘animate’ them in the code (by tweening their rotation or position). Then I can just use the Fixed Joint to carry items and only use physics where necessary.

I still really would like manual pulling/turning of such things but even after experimenting more I can’t get it to work as I’ve seen in other games.