To hold an object, we must tell the game engine: "Move this object from where it currently is, to where I want it to be, instantly." However, doing this instantly causes physics engines to glitch. Objects will clip through walls or shake violently.
When the player clicks the "fire" button while holding an object, the script releases the object and applies a massive (ForceMode.Impulse) in the direction the player is looking. Gravity gun script