更改 Three.js 中的对象父级?

问题描述 投票:0回答:2

是否可以更改任何对象的父对象?

例如:

scene.add(Object);
Object.Add(OtherObject);
OtherObject.parent = scene; // <-- Something like this

我只知道我可以删除该对象并在新的父对象中再次创建它,但我希望还有另一种方法。我有一些在飞机上的物体,如果我点击它们,我想将它们固定到相机上,这样我就可以一直看到相机前面的东西。如果我再次单击它们,我想再次将父级设置为飞机。

为什么这不起作用?

var obj = clicked.clone();
camera.add(obj);
obj.position.set(0,0,-20);
three.js
2个回答
5
投票

最简单的方法是使用 THREE.SceneUtils 对象的分离和附加功能:

THREE.SceneUtils.detach( child, parent, scene );
THREE.SceneUtils.attach( child, scene, parent );

0
投票

这对我有用

parent.attach(child);

父级是您想要为其设置父级的网格体,子级是要设置父级的网格体。

您可以先将孩子添加到场景中,也可以不添加到场景中。

信用:@pythonjsgeo (我只是将其作为实际答案放在这里,以便更容易看到) 更改 Three.js 中的对象父级?

© www.soinside.com 2019 - 2024. All rights reserved.