挂载到要拖拽的物体上。
using UnityEngine;
public class DragTarget : MonoBehaviour
{
Transform trans;
Camera mainCam;
Vector3 offset;
void Start()
{
trans = this.transform;
mainCam = Camera.main;
}
void OnMouseDown()
{
Vector2 mousePos = Input.mousePosition;
float distance = mainCam.WorldToScreenPoint(trans.position).z;
Vector3 worldPos = mainCam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, distance));
offset = trans.position - worldPos;
}
void OnMouseDrag()
{
Vector2 mousePos = Input.mousePosition;
float distance = mainCam.WorldToScreenPoint(trans.position).z;
trans.position = mainCam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, distance)) + offset;
}
}