Okay my math is a bit fuzzy. I have an object at a position;
Vector3 ObjPosAtStart = MyObject.transform.position;
And I can get the current rotation to hold for later as I when my mouse is up I want to find the final rotation based on where it was from when the mouse was first put down.
Quaternion CurrentRotation = transform.rotation;
When my mouse button goes down I can shoot a ray to verify I am on the object, then get a world position of where the mouse went down
Vector3 MouseBegin = MyCamera.ScreenToWorldPoint(Input.mousePosition);
Now, as the mouse moves I can get the current mouse position
Vector3 MousePos = MyCamera.ScreenToWorldPoint(Input.mousePosition);
It seems to me, now I have a triangle in 3 space from MouseBegin to the center of the object and back out to the place I want that first mouse position to be at.
This is where my mind goes blank and turns to mush. I should be able to say "Now calculating the angle in three space we want to move the object
Inserting simple yet great code here
We can now rotate the object
transform.rotation = CurrentRotation.rotate...
I should be able to figure out a way to rotate my object based on the angle from the MouseBegin to MousePos--and move it in real time giving the affect that I am actually dragging the real object--giving he affect of spinning it in place using the mouse.
Now for extra credit, I would think it would be possible to flick an object forward and end up giving it some momentum.
I notice a lot of people asking similar questions but not getting responses that answer it. I think my logic is pretty sound how it should be calculated--however my math is so limited that I can't take it the last bit.
Hopefully my logic will help someone easily come up with a solution!