Threejs克隆方法

Threejs clone method

我正在尝试克隆一些 Vector3,但克隆方法制作的副本是由 x、y 和 z 值中的全零创建的。一个例子:

这条语句的输出

 console.log(this.geometries[j].vertices[i].multiplyScalar(1));

LabeledVertex {x: -0.5, y: 0.5, z: 2.6745e-12, label: "U", constructor: function…} 

(LabeledVertex 只是 THREE.Vector3 的扩展)

如果我克隆最后一个 position = this.geometries[j].vertices[i].clone().multiplyScalar(1); position里面的内容是:THREE.Vector3 {x: 0, y: 0, z: 0, constructor: function, set: function…}. 正如你所看到的,它是由全零组成的。 Threejs 的 r71 版本会发生这种情况。

总是创建新的向量,如果你想用它来计算,或者克隆它然后在新的语法中用它来计算:

var v2 = v1.clone();
v2 = v2.multiplyScalar( 2 );

//or 
v2 = new THREE.Vector3(v1.x,v1.y,v1.z).multiplyScalar( 2 );

//or from gaitat comment
v2 = v1.clone().multiplyScalar( 2 );