Откажитесь от мыши, чтобы получить 3D-координаты мира Libgdx
Мой вопрос: Как заставить 3D-модель перемещаться с помощью курсора мыши, сохраняя положение модели на 0. (Используя Libgdx)
Что я пробовал: Я пытаюсь заставить мои 3D-модели следовать моему курсору.
На данный момент я просто заставил модели двигаться с помощью координат x и y моей мыши с добавлением таких факторов, как множитель и местоположение камеры. Это не очень хорошо, потому что он не следует за курсором, и если я поверну камеру, то модель не будет двигаться в правильном направлении.
Это код, который я создал для перемещения модели:
instances.get(modelIndex).transform.setToTranslation(((Gdx.input.getX()-650)/10) + cam.position.x,0,((Gdx.input.getY()-400)/10)+ cam.position.z);
Вот ссылка на изображение проблемы (зеленый кружок - там, где находится мышь).
Я знаю, что я ошибаюсь и должен использовать непроектированный метод. Я пытался использовать метод unproject и имел небольшой успех, модель просто прилипла к ближней панели камеры. Я хочу, чтобы мой объект оставался на 0 по осям y, поэтому я использовал это:
cam.unproject(mousePos);
instances.get(modelIndex).transform.setToTranslation(mousePos.x, 0, mousePos.z);
Это привело к тому, что модель двигалась довольно медленно (не с помощью мыши) в правильном направлении. Также, когда я поворачивал или перемещал камеру, модель находилась где-то на расстоянии или даже позади камеры.