Realistic Physics

In the project I'm working on, I can pick up and manipulate cubes using HTC Vive controllers. When a trigger on the controller is released, the cube's rigidbody's velocity and angular velocity are set equal to those of the controller.

My current problem is making the physics of the project realistic. I want the cube to behave similar to an object in real life when thrown. Instead, it might go far further than expected or arc in a strange manner.

The cube's scale is 0.1 on each side. Gravity is (0, -9.80665, 0), Time.timeScale is set to 1, and other values are set to the default values.

Presumably the desired effect can be created by manipulating the cube's mass, drag, and angular drag, but I am unsure of how to go about this. Messing with these values has changed how physics affects a thrown cube, but I have been unable to create anything resembling reality.

Mass will affect the inertia of the object so, I suggest looking at mass and trying to approximate real world values, but nothing too large or small. See Unity's docs on rigidbodies.

Scripting your own movement can be done, there are multiple trajectory/flight path equation sources. I believe the wiki elaborates on a throwing example actually. I use these for turret aimers but it can be adapted.