检测与精灵相交的光线

问题描述:

在鼠标单击上,我投射光线以查看点击与哪些对象相交。我有一堆这样的Mesh对象。然而,当我将一个Sprite添加到对象列表中时,Sprite永远不会被检测到。检测与精灵相交的光线

1)应该检测精灵吗?有什么让他们无法察觉吗?我需要做些什么才能使它们看起来“坚实”? 2)如果无法检测到精灵,那么让它们可点击的最佳方法是什么?在他们周围添加不​​可见的气瓶?

下面是一些与Mesh配合使用的部分代码。

var containerPosition = $container.position(); 
var vector = new THREE.Vector3(((event.clientX - containerPosition.left)/scene.WIDTH) * 2 - 1, - ((event.clientY - containerPosition.top)/scene.HEIGHT) * 2 + 1, 0.5); 
new THREE.Projector().unprojectVector(vector, scene.camera); 
var ray = new THREE.Ray(scene.camera.position, vector.subSelf(scene.camera.position).normalize()); 
var intersects = ray.intersectObjects(scene.solidObjects); 
if (intersects.length > 0) { 

它好像在Raycaster类的intersectObject方法仅配置为寻找与THREE.Particle和THREE.Mesh碰撞。查看当前源代码:

https://github.com/mrdoob/three.js/blob/master/src/core/Raycaster.js