あけましておめでとうございます、システム部の稲葉です。
r68→r69で前回影が出なくなったんですが、箱も積み上げられなくなっていました。
マウスポインタと物体の衝突判定に頻繁に使われるprojector.pickingRay()がなくなったため、世に出ているThree.jsのサンプルコードの多くがそのままでは動かなくなります。
困った時のgithubのissueということで、以下のissueを見つけました。
projector.pickingRay() has been removed?
結局、Raycaster.setFromCamera(coords, camera)が実装されたようです。
使い方は結構簡単になったと感じます。
rev.70から以下のような感じで使えます。
event.preventDefault(); var raycaster = new THREE.Raycaster(); var mouse = new THREE.Vector2(); mouse.x = (event.clientX / renderer.domElement.width) * 2 -1; mouse.y = - (event.clientY / renderer.domElement.width) * 2 +1; raycaster.setFromCamera(mouse, camera); var intersects = raycaster.intersectObjects( scene.children); if (intersects.length > 0) { // 何かにぶつかった for (var i = 0; i < intersects.length; i++) { // intersects[ i ]; ぶつかったオブジェクト } }