Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 如何使用Raycaster选择根Object3D_Three.js - Fatal编程技术网

Three.js 如何使用Raycaster选择根Object3D

Three.js 如何使用Raycaster选择根Object3D,three.js,Three.js,我有一个具有子网格的父对象Object3D。如何使用Raycaster仅选择根父对象 如果父对象具有多个子网格,并且希望通过光线投射选择父对象,则可以执行以下操作: 将父对象添加到对象数组中: var objects = []; ... objects.push( root_parent_object ); 向每个子对象添加指向根父对象的指针: child.userData.parent = root_parent_object; 将递归标志传递给intersectObjects() 现在,

我有一个具有子网格的父对象
Object3D
。如何使用
Raycaster
仅选择根父对象


如果父对象具有多个子网格,并且希望通过光线投射选择父对象,则可以执行以下操作:

将父对象添加到对象数组中:

var objects = [];
...
objects.push( root_parent_object );
向每个子对象添加指向根父对象的指针:

child.userData.parent = root_parent_object;
将递归标志传递给
intersectObjects()

现在,当光线投射器与子对象相交时,可以获得根对象


three.js r.68

我对使用从Sketchup导出的collada对象也有类似的需求。网格前面有多个父对象的踪迹,所以我所做的就是:

if (intersects.length >0){
    par = intersects[ 0 ].object.parent;
    while(par.type !== "Group"){
        par = par.parent;
    } 
    groupName = par.name;
}

它在碎片上移动)。结果是通过BoundingBoxHelper实现的。您需要选择根:
SELECTED=intersects[0]。object.userData.parent
if (intersects.length >0){
    par = intersects[ 0 ].object.parent;
    while(par.type !== "Group"){
        par = par.parent;
    } 
    groupName = par.name;
}