1

我创建的场景有一个 AR 相机和一个 3d 对象。当应用程序启动时,我在屏幕上看到该对象。我想用手指移动这个对象。我尝试了很多代码。但是我找不到适合我的解决方案。

AR相机被标记MainCamera。我使用下面的代码,结果出乎我的意料。我单击对象,控制台输出在这里:

在此处输入图像描述

如何将 3d 对象移动到鼠标单击位置?我不使用任何标记。

Vector3 vect3 = Camera.main.WorldToScreenPoint(car.transform.position);
Debug.Log("Vect3 = " + car.transform.position.x + "-" + car.transform.position.y + "-" + car.transform.position.z);         

Vector3 p = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10.0f));//Camera.main.nearClipPlane));
Debug.Log("Mouse = " + p.x + "-" + p.y + "-" + p.z);
4

1 回答 1

0

试试这个代码:

private Vector3 scrPt;
private Vector3 distance;

 void OnMouseDown()
 {
     scrPt= Camera.main.WorldToScreenPoint(car.transform.position);
     distance = car.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
 }

 void OnMouseDrag()
 {
     Vector3 currentScrPt= new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);     
     Vector3 currentPosition = Camera.main.ScreenToWorldPoint(currentScrPt) + distance;
     car.position = currentPosition ;
 }
于 2015-05-06T10:30:43.413 回答