将可渲染节点(相同的旋转、位置和比例)替换为 Sceneform sdk 中的另一个可渲染节点

2024-05-13

我是 Android 版 sceneform sdk 的新手。我已经添加了一个Transformable Node,然后我应用了一些旋转、缩放并改变了它的位置。现在,单击按钮后,我需要放置具有相同旋转、缩放和位置的第二个节点。

为此我所做的是:

 Node nodeTwo = new Node(); // second node
 nodeTwo.setLocalPosition(nodeOne);
 nodeTwo.setLocalRotation(nodeOne);
 nodeTwo.setLocalScale(nodeOne);
 nodeTwo.setRenderable(renderable); 

我也尝试过setWorldPosition() , setWorldRotation().。但没有任何作用,第二个节点被放置在固定位置和旋转上。

我可以做点什么来“解决”这个问题吗?


anchor = hitResult.createAnchor();
        anchorNode = new AnchorNode(anchor);
        anchorNode.setParent(arView.getArSceneView().getScene());
        transformableNode = new TransformableNode(arView.getTransformationSystem()); // As you said i have added one transformablenode which will allow transformation.
        transformableNode.setParent(anchorNode);
        transformableNode.setRenderable(modelRenderable);
        transformableNode.select();

然后我添加了另一个节点,它将用相同的转换替换第一个节点。

 Node node = new Node();
        Vector3 position = transformableNode.getLocalPosition();
        Quaternion rotation = transformableNode.getLocalRotation();
        TransformableNode andyNOde = new TransformableNode(arView.getTransformationSystem());
        andyNOde.setRenderable(andyRenderable);
        andyNOde.setLocalPosition(position);
        andyNOde.setLocalRotation(rotation);
        andyNOde.setParent(node);
        anchorNode.removeChild(transformableNode);
        anchorNode.addChild(node);

它正在使用此代码,可能是您做错了什么,请检查您的代码两次。希望它会有所帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将可渲染节点(相同的旋转、位置和比例)替换为 Sceneform sdk 中的另一个可渲染节点 的相关文章

随机推荐