THREE.Geometry であるパーティクルがあり、シーンをセットアップするときに 50 個のパーティクルがparticles.vertices にプッシュされます。次に、パーティクルを含む THREE.ParticleSystem を作成します。ドキュメントをマウスダウンすると、次の関数が起動します。
function onDocumentMouseDown(event) {
event.preventDefault();
var vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
projector.unprojectVector(vector, camera);
var ray = new THREE.Ray(camera.position, vector.subSelf(camera.position).normalize());
var intersects = ray.intersectObjects(particles);
console.log(intersects); // outputs empty array?
}
ただし、交差は常に空の配列を返します。何か不足していますか?マウスダウンでクリックされたパーティクルを検出するにはどうすればよいですか? 私はWebGLでこれをやっています。