2012-07-16 15 views
5

Po kliknięciu myszą wyświetlam promień, aby zobaczyć, które obiekty są przecinane przez kliknięcie. Mam kilka obiektów Mesh, z którymi to działa. Jednak gdy dodaję Sprite do listy obiektów, Sprite nigdy nie zostanie wykryty.Wykrywanie promieni przecinających ikonkę

1) Czy należy wykryć Sprite? Czy jest coś, co czyni je niewykrywalnymi? Czy jest coś, co muszę zrobić, aby stały się "solidne"? 2) Jeśli nie można wykryć Sprites, jakie jest najlepsze podejście do ich klikalności? Dodać niewidoczne cylindry wokół nich?

Oto niektóre częściowy kod, który działa z 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) { 

Odpowiedz

Powiązane problemy