Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.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
Javascript 如何在three.js中使组成为拖拽?_Javascript_Three.js - Fatal编程技术网

Javascript 如何在three.js中使组成为拖拽?

Javascript 如何在three.js中使组成为拖拽?,javascript,three.js,Javascript,Three.js,我制作了一个平面和球体,纹理立方体和简单立方体,并在上面加载了amf,我如何拖动或平移平面,并将所有提到的对象拖动到一起,实际上我制作了一个组,我从trackBallControl和OrbitControl中得到了帮助。 这是我的部分代码,我真的不知道该怎么做。我可以单独拖动,但不能作为一个整体拖动 var grid = new THREE.GridHelper(50, 50, 0xffffff, 0x555555); grid.rotateOnAxis(new THREE.Ve

我制作了一个平面和球体,纹理立方体和简单立方体,并在上面加载了amf,我如何拖动或平移平面,并将所有提到的对象拖动到一起,实际上我制作了一个组,我从trackBallControl和OrbitControl中得到了帮助。 这是我的部分代码,我真的不知道该怎么做。我可以单独拖动,但不能作为一个整体拖动

var grid = new THREE.GridHelper(50, 50, 0xffffff, 0x555555);
        grid.rotateOnAxis(new THREE.Vector3(1, 0, 0), 90 * (Math.PI / 180));
        scene.add(grid);
var grids= [grid];
controls = new THREE.TrackballControls(camera);
controls.rotateSpeed = 1.0;
controls.zoomSpeed = 1.2;
controls.panSpeed = 10;
controls.noZoom = false;
controls.noPan = false;
controls.staticMoving = true;
controls.dynamicDampingFactor = 0.3;
var dragControls = new THREE.DragControls(grids, camera, renderer.domElement);
dragControls.addEventListener('dragstart', function (event) {
controls.enabled = false;
        });

dragControls.addEventListener('dragend', function (event) {
controls.enabled = true;
        });

如果我没弄错的话。您可以将所有内容(平面和球体、纹理立方体和简单立方体以及加载的amf)添加为
网格的子对象(即
THREE.GridHelper()
):


例如。如果我在你的问题中遗漏了什么,请澄清。

就这样,非常感谢。它帮助了我,但amf加载器仍然没有被接受为一个chiled@棱镜849
var objects = [];

var grid = new THREE.GridHelper(10, 10);
scene.add(grid);
objects.push(grid); // add to the array for DragControls

var sphere = new THREE.Mesh(...);
sphere.position.set(-1, 1, 0);
grid.add(sphere); // as a child of the grid

var cube = new THREE.Mesh(...);
cube.position.set(1, 1, 0);
grid.add(cube); // as a child of the grid

var dragControls = new THREE.DragControls(objects, camera, renderer.domElement);
dragControls.addEventListener('dragstart', function(event) {
  controls.enabled = false;
});
dragControls.addEventListener('dragend', function(event) {
  controls.enabled = true;
});