2014-09-30 69 views
2

migration notes for r67 to r68狀態:不可變屬性Object3D R68

Object3Dpositionrotationquaternionscale屬性現在不可變的。

這是什麼意思在實踐中?我想了解更多細節。我找不到任何問題或要求提供詳細信息。

例如,以下代碼片段如何更改?

obj.position.x = 10; 

此外,這種不變性是如何執行的?對象被凍結時是否存在某個時刻,或者一旦構建了Vector3等實例是不可變的?

回答

3

經過一番實驗,似乎這些屬性是隻讀的,它們訪問可變對象。

因此,這是有效的:

obj.position.x = 10; 

但是這將被忽略:

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

不幸的是這不會導致任何可觀察到的錯誤或警告—它只是默默地不會做你問什麼它來。

下面將工作:

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

要查找違反這個新的限制,試着搜索以下字符串(您可能喜歡用正則表達式來使空白可選):

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