Faites glisser l'objet dans Unity 2D

J'ai regardé pour un objet en faisant glisser le script pour Unity 2D. J'ai trouvé une bonne méthode sur l'internet, mais il semble qu'il est juste de travailler en 3D de l'Unité. Il n'est pas bon pour moi car je suis en train de faire un jeu en 2D, et ce n'est pas entrer en collision avec les "murs" de cette façon.

J'ai essayé de le réécrire à la 2D, mais j'ai percuté erreurs, avec des Vecteurs.

Je serais très heureux si vous pouviez m'aider à le réécrire à la 2D.

Voici le code du travail en 3D:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(BoxCollider))]

public class Drag : MonoBehaviour {
    private Vector3 screenPoint;
    private Vector3 offset;

void OnMouseDown() {

    offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}

void OnMouseDrag()
{
    Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
    Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
    transform.position = curPosition;
}
}

source d'informationauteur Zwiebel