Three.js中是否可以更改子对象的世界位置?
我的最终目标是:
1)将孩子与父母分离(位置不变)2)将父母移到其他位置3)重新连接孩子(位置不变)
在我的代码中,“孩子”实际上是一组对象(并且我希望将每个对象保持在相同的世界位置)
目前,我已经通过以下方式获得了1和2:
scene.updateMatrixWorld();
var vector = new THREE.Vector3();
vector.setFromMatrixPosition( child.matrixWorld );
grandParent.remove( parent );
scene.add( parent );
parent.children[0].position = vector;
我已尝试通过存储matrixWorld并将其更新为存储的值来逆转上述过程,但未成功。我知道更改matrixWorld是不明智的做法,但这是唯一一种卓有成效的方法。
是的,您可以将子代与父代分离,转换父代并重新附加子代。
用于执行此操作的方法是:
parent.attach( object );
[将object
添加为parent
的子级,同时保持对象的世界变换。
three.js r.113