Ho cercato uno script di trascinamento di oggetti per Unity 2D. Ho trovato un buon metodo su Internet, ma sembra che funzioni solo in Unity 3D. Non va bene per me visto che sto realizzando un gioco 2D e non è in collisione con i "muri" in quel modo.Trascina oggetto in Unity 2D
Ho provato a riscriverlo in 2D, ma con Errori mi sono verificato degli errori.
Sarei molto felice se potessi aiutarmi a riscriverlo in 2D.
Ecco il codice ciò che funziona in 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;
}
}