使用Three.js层次结构围绕对象旋转(THREE.Group())

时间:2015-11-17 01:36:03

标签: javascript three.js

所以我有以下javascript代码:

var group = new THREE.Group();

  var staffGeometry = new THREE.BoxGeometry(0.5, 6, 0.5);
  var staffMaterial = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
  var staffCube = new THREE.Mesh( staffGeometry, staffMaterial );
  staffCube.position.x = -21;
  staffCube.position.y = 1;
  staffCube.position.z = -19;
  group.add(staffCube);
  //scene.add( staffCube );

  var geometry = new THREE.TorusKnotGeometry( 10, 3, 100, 16 );
  var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
  var torusKnot = new THREE.Mesh( geometry, material );
  torusKnot.position.x = -21;
  torusKnot.position.y = 4.8;
  torusKnot.position.z = -19;
  torusKnot.scale.set(0.08, 0.08, 0.08);
  group.add(torusKnot);
  //scene.add( torusKnot );

  var ballGeometry1 = new THREE.IcosahedronGeometry(0.5);
  var ballMaterial1 = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
  var ball1 = new THREE.Mesh(ballGeometry1, ballMaterial1);
  ball1.position.x = -22.5;
  ball1.position.y = 4.5;
  ball1.position.z = -20.5;

  group.add(ball1);
  //scene.add(ball1);

  var ballGeometry2 = new THREE.IcosahedronGeometry(0.5);
  var ballMaterial2 = new THREE.MeshBasicMaterial( {color: 0x00ff00} );
  var ball2 = new THREE.Mesh(ballGeometry2, ballMaterial2);
  ball2.position.x = -22;
  ball2.position.y = 6.5;
  ball2.position.z = -20;
  group.add(ball2);
  //scene.add(ball2);

  scene.add(group);

THREE.Group()试图利用层次结构。我似乎无法在THREE.Group上找到任何有用的示例或文档,所以甚至不确定我是否正确使用层次结构。我的目标是将员工设置到位,并通过层次结构更容易地与其他组件进行操作。

主要是,我希望ball1和ball2围绕员工。我不知道如何在组内访问它们,以便他们可以使用taurusKnots位置(工作人员的头部)转换为,在taurusKnots Y上旋转,然后翻译回来。

使用three.js层次结构实现这一目标的任何帮助都会很棒!就像我说的,我在网上找到的所有人都说要使用Group()进行层次结构,但是没有任何说明或者至少可以找到(至少我)如何访问成员并实际利用你建立的层次结构。

0 个答案:

没有答案