我注意到在ThreeJs中你:
var a = new THREE.BoxGeometry();
scene.add(a);
a.position.z += 23.5;
您将对象多维数据集传递给具有所有顶点等的场景,但是当您编辑它时,变量scene
知道新坐标。如果不将a
传递回scene
?
答案 0 :(得分:1)
之所以发生这种情况,是因为您将对象a
传递给了scene.add
方法"通过引用",以便a
的所有未来更改都是"已知&#34 ;由scene
对象。
为了演示此行为,您可以在js控制台中尝试以下代码:
var a = {foo: 'bar'}, scene = {
add: function(obj) {this.obj = obj},
print: function() { console.log(this.obj.foo);}
});
scene.add(a);
scene.print(); // outputs bar
a.foo = 'baz';
scene.print(); // outputs baz