2012-08-03 46 views
2

我需要通过鼠标单击来选择Three.JS中的Collada对象。我知道我可以根据他们的id选择对象,并且我看到一些用户可以与几何定义对象(here)交互的样本。但我需要访问Collada格式的对象。通过鼠标选择Collada对象点击Three.JS

回答

2

假设dae_scene是COLLADA场景从ColladaLoader回来,这里是你可以做什么检查路口:

var toIntersect = []; 
THREE.SceneUtils.traverseHierarchy(dae_scene, function (child) { 
    if (child instanceof THREE.Mesh) { 
     toIntersect.push(child); 
    } 
}); 

这得到了COLLADA场景内的所有网格对象。然后,您可以使用该阵列来查找射线相交,如下所示:

var ray = new THREE.Ray(camera.position, 
         vector.subSelf(camera.position).normalize()); 
var intersects = ray.intersectObjects(toIntersect); 
+0

感谢Jeff的快速回复。 – mbehnaam 2012-08-06 11:00:42