我想画一个彩色的盒子,包括边缘(用不同的颜色) 这是我用来创建框和边的代码。我已将它们都添加到object3D中,因为我在场景中会有许多不同的对象,并且希望强制执行封装。
var mesh = new THREE.Mesh( geo, material );
var edge = new THREE.EdgesHelper( mesh, 0xffffff );
var container = new THREE.Object3D();
container.add(mesh);
container.add(edge);
scene.add(container);
以上发布的代码有效并产生了这个:
但是当我像这样改变父对象的位置时:
container.position.set(0,30,0);
仅移动边缘。为什么呢?
将.updateMatrix()添加到容器,网格或边缘对象似乎不会产生不同的结果。
如何移动父对象,包括它的所有子对象?
答案 0 :(得分:2)
您需要直接将助手添加为场景的子项。
这是由于许多帮助者中出现了以下几行:
this.matrix = object.matrixWorld;
this.matrixAutoUpdate = false;
three.js r.70