Help With Touch to Drag Script

I currently have a script to move an object by dragging it with the IOS touch input. I want the script to be able to move my object even if your finger is not touching the object. So you can be able to drag the object around even if your finger is below, on top of it… etc… However, when I use this script and I touch like below or above and try to drag, it transforms the position of the object to my finger. Ill post the script and if someone can help me with it thatd be appreciated. Thanks

#pragma strict

function Start () {
}
function Update () {
    for (var touch : Touch in Input.touches){
        var ray = Camera.main.ScreenPointToRay(touch.position);
        var hit : RaycastHit;

        if (Physics.Raycast (ray, hit, 100)) {

            if(touch.phase == TouchPhase.Began || touch.phase == TouchPhase.Moved) {

                var cameraTransform = Camera.main.transform.InverseTransformPoint(0, 0, 0);

                transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, cameraTransform.z - 0.5));
            }
        }
    }
}

Solved. Changed the script
var object : GameObject;

var speed:float = 0.0001;

function Update () {

    if (iPhoneInput.touchCount > 0 && iPhoneInput.GetTouch(0).phase == iPhoneTouchPhase.Moved) {
 var touchDeltaPosition:Vector3 = iPhoneInput.GetTouch(0).deltaPosition;
   transform.Translate (touchDeltaPosition.x * speed/3, touchDeltaPosition.y * speed/3, 0);

    }

}