在鼠标单击时,我会投射一条射线以查看哪些对象与单击相交。我有一堆可以使用的 Mesh 对象。但是,当我将 Sprite 添加到对象列表时,从未检测到 Sprite。
1) 是否应该检测到 Sprite?有什么东西使它们无法检测到吗?我需要做些什么来使它们看起来“坚固”吗?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) {