Перетащите 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 ;
}