I’m writing a manipulator for clicking and dragging ragdolls, and rigidbodies, and i’m trying to make the grabbed rigidbody hover at a certain height above the spot of ground where my cursor is. (about half a metre) by pushing it constantly towards the specified point
While this works if the target is light enough, when i try to drag it horizontally, the target sinks downwards as it moves horizontally in a sort of inverse parabola, and doesn’t climb back up until i stop horizontal movement.
I can minimise this problem by increasing the force i move it with, but that causes other problems.
What i’d like to do instead, is apply a constant secondary force that pushes it upwards. The math i’m trying to use for this is
Physics.Gravity * targetrigidbody.mass * Time.DeltaTime
This force is applied repeatedly every frame (is there a better way ? should i specify a forcemode?)
It’s worth noting that i’m NOT applying these forces directly to the rigidbody, but instead to a manipulator object which is linked to it with a fixedJoint. as far as i’m aware that shouldn’t make a difference, but maybe i’m wrong
as a far as i’m aware this should make the object float freely and act as if it’s not obeying gravity, which should result in completely horizontal motion when i drag it around. But it doesn’t. And that’s just on single bodied objects.
I also need to figure out how to apply this method to ragdolls, which are obviously made of several parts.
I am well aware of the UseGravity flag on rigidbodies, however i’m opting not to use that if possible for two reasons:
- Ragdolls. Gravity is essential for making them flop around realistically
- Limiting. I’m putting an upper limit on this lifting force, so that it still won’t work on exceptionally heavy objects
I’m trying to implement this feature as a way to make the player feel more incontrol of dragging and manipulating objects. Without this force it’s kind of lame

Here’s me attempting to drag a multipart ragdoll around. It’s supposed to float horizontally though the air, not drag along the floor.
And here’s a demonstration on just a plain, single-rigidbody ball. The lifting force code is active here, but it doesn’t seem to do anything

As can be seen when i attempt to drag it horizontally, the ball still dips and moves in an arc. It also greatly overshoots the target, which is a result of me cranking up the basic force to try to eliminate this dipping
I could do with some advice on making this work better