如何更改三个js中的比例(通过分配)

时间:2015-10-05 20:37:32

标签: javascript three.js

我在threejs中有两个对象。我希望他们分享scale vector

的价值
  mesh1 = new THREE.Mesh(geometry, material); 
  mesh1.scale.x = 0.47;

  mesh2 = new THREE.Mesh(geometry, material); 
  mesh2.scale=mesh1.scale;  // This does not work

最后一行无效。该文档未声明scale属性是只读的。我查看了源代码,发现该属性未定义为可写。文档中是否存在错误,或者这就是threejs的工作方式,记录它是没有意义的:-)?

是否可以在不同网格之间共享比例(和其他矢量)?是复制值

的唯一方法
  mesh2.scale.copy(mesh1.scale);  // Copy the vector over

UPDATE:这似乎适用于旧版本的threejs - 例如以下示例中使用的版本。这个功能是故意禁用的吗?

1 个答案:

答案 0 :(得分:2)

Object3D的{​​{1}},positionrotationquaternion属性是不可变的。

请参阅源代码文件scale

例如,您不能再使用以下模式:

Object3D.js

相反,您必须使用

object.scale = vector;

object.scale.set( x, y, z );

与上述其他属性类似。

three.js r.72