unity拖拽物体
Vector3 MyScreenPointToWorldPoint(Vector3 ScreenPoint, Transform target) { //得到物体在主相机的某个方向 Vector3 dir = (target.position - Camera.main.transform.position); //计算投影 Vector3 norVec = Vector3.Project(dir, Camera.main.transform.forward); return Camera.main.ViewportToWorldPoint( new Vector3( ScreenPoint.x/Screen.width, ScreenPoint.y/Screen.height, norVec.magnitude ) ); } Vector3 startPos; Vector3 endPos; Vector3 offset; private void OnMouseDown() { startPos = MyScreenPointToWorldPoint(Input.mousePosition, transform); } private void OnMouseDrag() {