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.

Respuestas a la pregunta(1)

Su respuesta a la pregunta