Estoy tratando de usar raycasting para detectar si mi mouse apuntó al objeto, cuando no tocó la función funciona bien, pero cuando tocó, dejó de imprimir "no tocó", mientras que no imprimió "tocar" en el Mismo tiempo. Para la declaración if que incluyo aquí, solo hay 2 casos, ya sea === o no, ¿verdad? Entonces, ¿por qué mi código no funciona? ¿alguien puede ayudarme?
function animate(){ renderer.render(scene,camera); sLightHelper.update(); rayCaster.setFromCamera(mousePosition,camera); var intersects = rayCaster.intersectObjects(scene.children); if ( house != undefined ){ for(let i = 0; i < intersects.length; i++){ if(intersects[0].object.id === house.ID){ console.log("touch"); } else{ console.log("didnt touch"); } } console.log("finished"); } else{ console.log('not ready') } }Intenta escribir tu código así:
if ( intersects.length > 0 ) { for(let i = 0; i < intersects.length; i++){ if(intersects[0].object.id === house.ID){ console.log("touch"); } else{ console.log("didnt touch"); } } } else { console.log("didnt touch"); } console.log("finished");