RaycastHit hit;

	void Update () {

        if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1))
        { 
            Ray ray = GetComponent<Camera>().ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit))
            {
                print(hit.transform.name);
                print(hit.point);

                //snap to grid once selected.
                hit.transform.position = new Vector3(Mathf.Round(hit.transform.position.x), Mathf.Round(hit.transform.position.y), Mathf.Round(hit.transform.position.z));
            }
        }
    }

Place it in camera or empty object.