How to Drag Objects in unity3D?

I am new to unity. I am working on cake maker like game for android device. I am facing a difficulty in dragging objects from cabinet to table. On table i want to mix them in a jar. These are Many items. So, I cannot do it by separating them using unity Tags. How to make a generic way to drag them on table?

I am using this code but its not working for me.

using UnityEngine;
using System.Collections;

public class DragObjects : MonoBehaviour {

Ray ray;
RaycastHit hit;

// Use this for initialization
void Start ()
{
}

// Update is called once per frame
void Update ()
{

    if (Input.GetMouseButtonDown(0))
    {
        ray = Camera.main.ScreenPointToRay (Input.mousePosition);
        if (Physics.Raycast (ray, out hit))
        {
            if (hit.collider.tag == "oil")
            {
                OnMouseDrag();
            }
        }
    }

}
void OnMouseDrag()

{

Vector3 point = Camera.main.ScreenToWorldPoint(Input.mousePosition);


point.x = gameObject.transform.position.x;

gameObject.transform.position = point;
}

}

Ok the problem is that you convert coordinates from screen to world incorrectly.
The function ScreenToWorld gets a Vector3 value, x and y - are coordinates at the screen but if you use non-orthographic camera you must specify distance from camera as z-value (with orthographic camera you also should specify z but it the visible result won’t change because the object appearance is the same in spite of the distance ). You didn’t do that. Use the following code to drag your object along a plane at a constant distance from the main camera which is determined as an initial distance.

using UnityEngine;
using System.Collections;
public class NewBehaviourScript1 : MonoBehaviour {

	Ray ray;
	RaycastHit hit;
	float distance = 0;
	// Use this for initialization
	void Start ()
	{
	}
	
	// Update is called once per frame
	void Update ()
	{
		
		if (Input.GetMouseButtonDown(0))
		{
			ray = Camera.main.ScreenPointToRay (Input.mousePosition);
			if (Physics.Raycast (ray, out hit))
			{
				if (hit.collider.tag == "oil")
				{
					OnMouseDrag();
				}
			}
		}
		
	}
	void OnMouseDrag()
		
	{
		if (distance==0){distance = Vector3.Distance (Camera.main.transform.position, gameObject.transform.position);}
		Vector3 v = Input.mousePosition;
		v.z = distance;
		Vector3 point = Camera.main.ScreenToWorldPoint(v);
		gameObject.transform.position = point;
	}
}