What I generally do is use the camera forward vector as a ray.
Intersect this ray with the ground plane, and move the selected object to this point.
You can see this in action here ...
And if I want move Up or Down, I just change Plane position? Looks nice, now just need to get Plane