2015-05-06 4 views
0

Я создаю сцену с AR-камерой и 3D-объектом. Когда приложение запускается, я вижу объект на экране. Я хочу перенести этот объект пальцами. Я пробовал много кодов. Но я не нашел хорошего решения для меня.Перетащите 3d-объект, используя пальцы в единстве3d

AR камера с биркой MainCamera. Я использую ниже код, и результат для меня неожиданен. Я нажимаю на объекте и консольный вывод здесь:

enter image description here

Как я могу переместить 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); 
+0

Какой результат вы получите, точно, и как это "неожиданным"? –

+0

Для пальцев вам нужно использовать Input.GetTouch вместо mousePosition – joreldraw

+0

@MaxYankov Я редактирую свой вопрос. Пожалуйста, прочитайте. – zumma

ответ

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 ; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^