思路
1.鼠标屏幕坐标(鼠标所在的屏幕坐标:z的值为物体世界坐标转屏幕z的值)转世界坐标
2.鼠标世界坐标+偏移量(物体世界坐标-鼠标的世界坐标)赋给物体
方法:
//目标物体
dragGameObject;
//目标物体的屏幕坐标
targetScreenPoint = Camera.main.WorldToScreenPoint(dragGameObject.position);
//当前鼠标所在的屏幕坐标
Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, targetScreenPoint.z);
//把当前鼠标的屏幕坐标转换成世界坐标
Vector3 curWorldPoint = Camera.main.ScreenToWorldPoint(curScreenPoint);
偏移量
offset = dragGameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, targetScreenPoint.z));
//给物体坐标赋值
dragGameObject.position = curWorldPoint + offset;