Threejs克隆方法

Threejs clone method

本文关键字:方法 Threejs      更新时间:2023-09-26

我正试图克隆一些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);位置内的内容是: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 );