我有粒子,这是一个 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 中这样做。