あけましておめでとうございます、システム部の稲葉です。

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 ]; ぶつかったオブジェクト
  }
}
ホームページ制作依頼・無料お見積り承ります!

2015.01.07|Inaba_Mitsu

関連記事

コメント