ThreeJS r68中不可变的Object3D属性

时间:2014-09-30 21:46:31

标签: javascript three.js

migration notes for r67 to r68州:

  

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

这在实践中意味着什么?我想了解更多关于此的细节。我无法找到问题或提出细节请求。

例如,以下代码片段需要如何更改?

scale

此外,这种不变性是如何实施的?是否存在对象被冻结的时刻,或者obj.position.x = 10; 等实例在构造后是不可变的?

1 个答案:

答案 0 :(得分:4)

经过一些实验,似乎这些属性是只读的,并且它们可以访问可变对象。

所以这是有效的:

obj.position.x = 10;

但这会被忽略:

obj.position = new THREE.Vector3(10, 0, 0);

不幸的是,这不会导致任何可观察到的错误或警告 - 它只是默默无法按照您的要求进行操作。

以下方法可行:

obj.position.set(10, 0, 0);

要查找违反此新限制的内容,请尝试搜索以下字符串(您可能希望使用正则表达式使空格可选):

  • .position =
  • .rotation =
  • .quaternion =
  • .scale =