system
1
EDIT : Added my code snippet which tries to “grab and drag” the mouse to its actual rotation. it’s not working 
if(Input.GetMouseButton(0))
{
var ziel : Vector3 = Kamera.ScreenToWorldPoint(Input.mousePosition);
var relativePos = kugel.transform.position - ziel;
var Rotation = Quaternion.LookRotation(relativePos);
kugel.transform.rotation = Rotation;
}
Btw “kugel” is german for Sphere 
Quaternion.LookRotation might be the wrong way. please help me guys =/
var rotationSpeed = 10.0;
var lerpSpeed = 1.0;
private var speed = new Vector3();
private var avgSpeed = new Vector3();
private var dragging = false;
private var targetSpeedX = new Vector3();
function OnMouseOver()
{
dragging = true;
}
function Update ()
{
if (Input.GetMouseButton(0) && dragging) {
speed = new Vector3(-Input.GetAxis ("Mouse X"), Input.GetAxis("Mouse Y"), 0);
avgSpeed = Vector3.Lerp(avgSpeed,speed,Time.deltaTime * 5);
} else {
if (dragging) {
speed = avgSpeed;
dragging = false;
}
var i = Time.deltaTime * lerpSpeed;
speed = Vector3.Lerp( speed, Vector3.zero, i);
}
transform.Rotate(Vector3.up, speed.x * rotationSpeed, Space.World);
}
Try something like this, I am working on something similar, but not the same.