var raycaster,lastSelectObj;
raycaster = new THREE.Raycaster();
function render() {
raycaster.setFromCamera( mouse, camera );
var intersects = raycaster.intersectObjects( scene.children );
if ( intersects.length > 0 ) {
if ( lastSelectObj != intersects[ 0 ].object ) {
if ( lastSelectObj ) lastSelectObj.material.emissive.setHex( lastSelectObj.currentHex );
lastSelectObj = intersects[ 0 ].object;
lastSelectObj.currentHex = lastSelectObj.material.emissive.getHex();
lastSelectObj.material.emissive.setHex( 0xff0000 );
}
}
else
{
if ( lastSelectObj )
lastSelectObj.material.emissive.setHex( lastSelectObj.currentHex );
lastSelectObj = null;
}
renderer.render( scene, camera );
}
var mouse = new THREE.Vector2();
function onDocumentMouseMove( event ) {
event.preventDefault();
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}
射线法获取鼠标选择的元素,然后修元素的材质。