Delay of object dragging with touch -help?-

please tell me why this script does not move the object without delay??

using UnityEngine;
using System.Collections;

public class MoveObjectAsTouch : MonoBehaviour 
{
	
	public string MovableObjectTag;	//Disk
	
	private Transform _myTransform;
	
	private string _currentState;
	
	private Ray _ray;
	
	private RaycastHit _hit;
	
	private bool _rightObject;
	
	private Vector3 _initialPos;
	private Vector3 screenPos;
	private Vector3 offset;
	private Vector3 currentScreenPos;
	private Vector3 currentPos;
	private Vector3 F1;
	private Vector3 F2;
	private Vector3 M;

	
	void Start()
	{
		_myTransform = transform;
	}
	
	void OnGUI()
	{
		GUI.Label(new Rect(10, 10, 100, 30), _currentState);
	}
	
	void FixedUpdate()
	{
		
		if (iPhoneInput.touchCount == 1)
		{

            Touch firstTouch = Input.GetTouch(0);
            Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
            RaycastHit hit;

            if (Physics.Raycast (ray, out hit, 100)) 
			{
                if(hit.collider.tag == MovableObjectTag)
				{
                    if (firstTouch.phase == TouchPhase.Began) 
					{
						_currentState = "Touch's began";
						
                        screenPos = Camera.main.WorldToScreenPoint(_myTransform.position);
                        offset = _myTransform.position - Camera.main.ScreenToWorldPoint(new Vector3(firstTouch.position.x,firstTouch.position.y,screenPos.z));   
					}
					else if(firstTouch.phase == TouchPhase.Moved)
					{
						_currentState = "Touch's Moved";
						
                        currentScreenPos = new Vector3(firstTouch.position.x, firstTouch.position.y, screenPos.z); // firstTouch.position.y
                        currentPos = Camera.main.ScreenToWorldPoint(currentScreenPos) + offset;
                        _myTransform.position = currentPos;
                	}
					else if(firstTouch.phase == TouchPhase.Ended)
					{
						_currentState = "Touch's Ended";
						
					}
            	}   
        	}       
   	 	}
	}
}

emm, …

It looks very similar to code that I use. Without having my code handy here to compare, the one thing I can see that you might want to try is putting this inside of Update() instead of FixedUpdate(). FixedUpdate() is typically used when moving rigidbodies and using physics. Using update for touch code might be smoother.