我有一个画布,里面有几个立方体。我使用Raycaster来选择它们并改变它们的颜色。但画布在draggable
物体内部,当我四处移动时,我无法改变颜色,颜色变化在原始位置起作用。我想我也必须改变Raycaster的尺寸。我怎么能这样做?
这是example。
答案 0 :(得分:5)
尝试按如下方式更改代码:
function onDocumentMouseDown( event ) {
event.preventDefault();
var x = event.offsetX == undefined ? event.layerX : event.offsetX;
var y = event.offsetY == undefined ? event.layerY : event.offsetY;
var vector = new THREE.Vector3();
vector.set( ( x / renderer.domElement.width ) * 2 - 1, - ( y / renderer.domElement.height ) * 2 + 1, 0.5 );
vector.unproject( camera );
raycaster.ray.set( camera.position, vector.sub( camera.position ).normalize() );
...