Перетащите 3D-объект с помощью пальцев в unity3d

Я создаю сцену с 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);

1 ответ

Попробуйте этот код:

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 ;
 }
Другие вопросы по тегам