javascript - ThreeJS r68 中不可变的 Object3D 属性

标签 javascript three.js

migration notes for r67 to r68状态:

Object3D's position, rotation, quaternion and scale properties are now immutable.

这在实践中意味着什么?我想要更多关于这方面的细节。我找不到问题或请求详细信息。

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

obj.position.x = 10;

此外,这种不变性是如何实现的?是否存在对象被卡住的时刻,或者 Vector3 等实例一旦构造就不可更改?

最佳答案

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

所以这是有效的:

obj.position.x = 10;

但这将被忽略:

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

不幸的是,这不会导致任何可观察到的错误或警告——它只是默默地不按照您的要求去做。

以下是可行的:

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

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

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

关于javascript - ThreeJS r68 中不可变的 Object3D 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130672/

相关文章:

javascript - 如何隐藏放大弹出窗口中的默认 'X' 关闭按钮?

javascript - 如何使用 node.js 在 mysql 数据库上实现推送通知系统

javascript - npm 报告我的模块版本不正确

javascript - 等宽,单张图片

javascript - 使用球坐标三个js在球体上移动点

javascript - Threejs - 我的时间脚本有更好的性能

three.js - 将一个网格显示在另一个网格之上

javascript - 单击特定同级元素时选中复选框

three.js - 将 Maya 场景导出到 Three.js

javascript - three.js:找到网格到鼠标光标的最近点