Unproject mouse para obtener coordenadas de mundo 3D Libgdx
Mi pregunta: ¿Cómo se consigue que un modelo 3D se mueva con el cursor del mouse manteniendo la ubicación y del modelo en 0. (Usando Libgdx)
Lo que he intentado: Estoy tratando de hacer que mis modelos 3D sigan mi cursor.
En este momento simplemente he hecho que los modelos se muevan con las coordenadas x e y de mi mouse, agregando factores como un multiplicador y la ubicación de la cámara. Esto no es muy bueno porque no sigue el cursor y si giro la cámara, el modelo no se mueve en la dirección correcta.
Este es el código que creé para mover el modelo:
instances.get(modelIndex).transform.setToTranslation(((Gdx.input.getX()-650)/10) + cam.position.x,0,((Gdx.input.getY()-400)/10)+ cam.position.z);
Aquí hay un enlace a una imagen del problema (el círculo verde es donde está el mouse).
Sé que me estoy equivocando y que debería estar usando el método Unproject. He intentado usar el método de no proyectar y tuve poco éxito, el modelo simplemente se pegó al panel cercano de la cámara. Quiero que mi objeto permanezca en 0 en los ejes y, así que usé esto:
cam.unproject(mousePos);
instances.get(modelIndex).transform.setToTranslation(mousePos.x, 0, mousePos.z);
Esto hizo que el modelo se moviera muy lentamente (no con el mouse), en la dirección correcta. Además, cuando giraba o movía la cámara, el modelo se colocaba en algún lugar en la distancia o incluso detrás de la cámara.