4

这是我可以用来放置模型的一段代码。

private void addNodeToScene(ArFragment fragment, Anchor createAnchor, ModelRenderable renderable) {

    AnchorNode anchorNode = new AnchorNode(createAnchor);
    TransformableNode transformableNode = new TransformableNode(fragment.getTransformationSystem());
    transformableNode.setName("box");
    transformableNode.setRenderable(renderable);
    transformableNode.setParent(anchorNode);
    fragment.getArSceneView().getScene().addChild(anchorNode);

    transformableNode.setOnTapListener((hitTestResult, motionEvent) -> {
        if(callback != null) {
            callback.onGiftClick(hitTestResult.getNode());
        }
    });
    transformableNode.select();
}

但是一旦模型被放置,我可以移动模型。

有什么方法可以禁止用户在放置模型后四处移动模型?

4

2 回答 2

3

用一个节点替换你的 TransformableNode。

TransformableNode transformableNode = new TransformableNode(fragment.getTransformationSystem());

变成

Node myNode = new Node();

你将无法再移动它

Nodes 与 TransformableNodes 相比,有些事情的工作方式不同 -> 构造函数为空。

于 2019-04-15T19:57:29.093 回答
0

如果要保留 TransforableNode,可以使用以下标志

transformableNode.getTranslationController().setEnabled(false);
于 2021-01-10T08:05:50.387 回答