Hi,
I want to get the name of geometry that I click…
The code :
public void cargar() {
Spatial casa = assetManager.loadModel(“Models/casa/Old House 2 3D Models.j3o”);
//casa.setName(“Soy la casa”);
this.getStateManager().attach(bulletAppState);
CollisionShape sceneShape = CollisionShapeFactory.createMeshShape((Node) casa);
landscape = new RigidBodyControl(sceneShape, 0);
casa.addControl(landscape);
bulletAppState.setDebugEnabled(false);
bulletAppState.getPhysicsSpace().add(landscape);
rootNode.attachChild(casa);
//System.out.println("nombre "+casa.getName());
}
in the simpleUpdate
public void simpleUpdate(float tpf) {
flyCam.setMoveSpeed(60f);
cambiarMovilidadCamara();
pickObjectWithMouse();
}
other method
private Geometry pickObject() {
Geometry objetoSeleccionado = null;
CollisionResults results = new CollisionResults();
Vector2f click2d = inputManager.getCursorPosition();
Vector3f click3d = cam.getWorldCoordinates(new Vector2f(click2d.x, click2d.y), 0f).clone();
Vector3f dir = cam.getWorldCoordinates(new Vector2f(click2d.x, click2d.y), 1f).subtractLocal(click3d).normalizeLocal();
Ray ray = new Ray(click3d, dir);
//cambio el rootNode por elselectableObjects
selectableObject.collideWith(ray, results);
System.out.println("el resultado de la colision : " + results.size()); // It is always zero :frowning:
if (results.size() > 0) {
objetoSeleccionado = results.getClosestCollision().getGeometry();
//System.out.println("nombre de la geometria " + results.getClosestCollision().getGeometry());
}
return objetoSeleccionado;
}
private void pickObjectWithMouse() {
Geometry objectPicked;
if (leftClick) {
objectPicked = pickObject();
if (objectPicked != null) {
System.out.println("nombre de lo que toco: " + objectPicked.getName());
}
}
}
not because the result is zero, thanks for the help