簡體   English   中英

在 Three.js 中改變子對象的世界位置

[英]Changing the World Position of a Child Object in Three.js

Three.js 有沒有辦法改變子對象的世界位置?

我的最終目標是:

1)將孩子與父母分離(不改變它的位置)
2)將父級移動到不同的位置
3)重新連接孩子(不改變位置)

在我的代碼中,“孩子”實際上是一組對象(我希望每個對象都保持在相同的世界位置)

目前,我通過以下方式實現了 1 和 2:

scene.updateMatrixWorld();
var vector = new THREE.Vector3();
vector.setFromMatrixPosition( child.matrixWorld );
grandParent.remove( parent );
scene.add( parent );
parent.children[0].position = vector;

我試圖通過存儲 matrixWorld 並將其更新為存儲的值來反轉上述過程,但沒有成功。 我知道改變 matrixWorld 是不明智的,但這是唯一已證明有效的方法。

是的,您可以將子項與父項分離,轉換父項,然后重新附加子項。

用於執行此操作的方法是:

parent.attach( object );

它將object添加為parent的子級,同時保持對象的世界變換。

三.js r.113

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM