Select 在Three.JS中单击鼠标选择Collada对象

Select 在Three.JS中单击鼠标选择Collada对象,select,mouseevent,webgl,three.js,collada,Select,Mouseevent,Webgl,Three.js,Collada,我需要通过鼠标单击选择Three.JS中的Collada对象。我知道我可以根据它们的id选择对象,并且我看到了一些用户可以与几何体定义的对象交互的示例()。但是我需要访问Collada格式的对象。假设dae_场景是从ColladLoader返回的Collada场景,下面是检查交叉点的方法: var toIntersect = []; THREE.SceneUtils.traverseHierarchy(dae_scene, function (child) { if (child ins

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

假设
dae_场景
是从ColladLoader返回的Collada场景,下面是检查交叉点的方法:

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

谢谢杰夫的快速回复。