2013-05-16 71 views
2

我拿this爲例拖動&放下物體,它的作品完美。但是現在我想將一些元素分組拖動到一起,拖動它們到&。我用一些Spheres替換了示例中的多維數據集,並將它們組合在一個Object3D()中。如何使用three.js拖放Object3D元素?

var data = [[0,10],[50,20],[100,7],[150,18],[200,15],[250,3],[300,10],[350,25]]; 
var group = new THREE.Object3D(); 
    for(var i = 0; i< data.length; i++){    
     var mesh = new THREE.Mesh(new THREE.SphereGeometry(data[i][1],20,20), sphereMaterial); 
     mesh.position.y = data[i][0]; 
     mesh.updateMatrix(); 
     group.add(mesh);    
    } 
objects.push(group); 
scene.add(group); 

但我不能選擇該組中我的場景中物體的:(我做錯了嗎?是不是有可能選擇一組嗎?或者必須怎樣樣子呢?

回答

2

很難說沒有代碼,但我想你可能會使用.intersectObjects(對象),你應該嘗試使用.intersectObjects(對象,真正的),而不是

下面是文檔:

.intersectObjects(對象,遞歸)

objects - 要檢查與射線相交的對象。

遞歸 - 如果設置了,它也檢查對象的所有後代。否則,它只會檢查與對象的交集。 檢查光線與有或沒有後代的物體之間的所有交點。

three.js Raycaster

+0

當我做.intersectObjects(對象,真正的),你可以拖動單spehres。但我不想那樣!我想一次性移動整個球體組。 – PanChan

+0

您需要選取所選感興趣對象的父級並將其拖動。 – gaitat

+1

這是一個簡單但有用的提示! 我添加了一個「父」到「INTERSECTED = intersects [0] .object.parent;」也到了SELECTED,它的工作原理! :D 但是現在每個幾何圖形都必須位於一個被拖動的組中。這不好,但我現在可以忍受。 – PanChan