2012-07-16 4 views
5

마우스 클릭시 어떤 오브젝트가 클릭에 의해 교차되는지 광선을 투사합니다. 나는이 메쉬 객체들을 가지고 있습니다. 그러나 Sprite를 객체 목록에 추가하면 Sprite가 감지되지 않습니다.스프라이트와 교차하는 광선 감지

1) 스프라이트가 감지되어야합니까? 그들을 발견하지 못하게하는 것이 있습니까? '단색'으로 보이게하기 위해 내가해야 할 일이 있습니까? 2) Sprites를 감지 할 수없는 경우 클릭 할 수있는 가장 좋은 방법은 무엇입니까? 주변에 보이지 않는 실린더를 추가 하시겠습니까?

다음은 메쉬에서 작동하는 일부 코드입니다. Raycaster 클래스의 intersectObject 방법은 THREE.Particle와 THREE.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) { 

답변