Drag 2D Sprite by Touch

Im able to drag and drop gameobjects by touch. Well, here is an example script from the internet:

using UnityEngine;
using System.Collections;

public class Drag2 : MonoBehaviour
{
private float dist;
private bool dragging = false;
private Vector3 offset;
private Transform toDrag;

 void Update()
 {
     Vector3 v3;

     if (Input.touchCount != 1)
     {
         dragging = false;
         return;
     }

     Touch touch = Input.touches[0];
     Vector3 pos = touch.position;

     if (touch.phase == TouchPhase.Began)
     {
         RaycastHit hit;
         Ray ray = Camera.main.ScreenPointToRay(pos);
         if (Physics.Raycast(ray, out hit) && (hit.collider.tag == "Circle"))
         {
             Debug.Log("Here");
             toDrag = hit.transform;
             dist = hit.transform.position.z - Camera.main.transform.position.z;
             v3 = new Vector3(pos.x, pos.y, dist);
             v3 = Camera.main.ScreenToWorldPoint(v3);
             offset = toDrag.position - v3;
             dragging = true;
         }
     }
     if (dragging && touch.phase == TouchPhase.Moved)
     {
         v3 = new Vector3(Input.mousePosition.x, Input.mousePosition.y, dist);
         v3 = Camera.main.ScreenToWorldPoint(v3);
         toDrag.position = v3 + offset;
     }
     if (dragging && (touch.phase == TouchPhase.Ended || touch.phase == TouchPhase.Canceled))
     {
         dragging = false;
     }
 }

}
Problem: i have no idea how to do that with Sprites which are 2D and have a Rigidbody2D and Collider2D. The above scripts needs mesh which is not for 2D. Any solutions ?

Solved myself.