2012-07-16 6 views
5

Bei Mausklicks projiziere ich einen Strahl, um zu sehen, welche Objekte durch den Klick geschnitten werden. Ich habe eine Reihe von Mesh-Objekten, mit denen das funktioniert. Wenn ich jedoch einen Sprite zur Liste der Objekte hinzufüge, wird der Sprite niemals erkannt.Erkennen von Strahlen, die ein Sprite schneiden

1) Sollten Sprites erkannt werden? Gibt es etwas, das sie nicht erkennbar macht? Gibt es etwas, das ich tun muss, damit sie "solide" erscheinen? 2) Wenn Sprites nicht erkannt werden können, was ist der beste Ansatz, um sie anklickbar zu machen? Fügen Sie unsichtbare Zylinder um sie herum hinzu?

Hier ist ein Teil Code, der mit Mesh funktioniert.

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) { 

Antwort

Verwandte Themen