Обнаружение лучей, пересекающих спрайт

При щелчке мышью я проецирую луч, чтобы увидеть, какие объекты пересекаются при щелчке. У меня есть куча объектов Mesh, с которыми это работает. Однако, когда я добавляю спрайт в список объектов, спрайт никогда не обнаруживается.

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) {
6
задан SparkeyG 16 July 2012 в 20:32
поделиться