猿问

ARCore - 禁用 ModelRenderable 的移动

这是我能够放置模型的一段代码。


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();

}

但是一旦模型放置好,我就可以四处移动模型。


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


慕工程0101907
浏览 165回答 2
2回答

aluckdog

用一个节点替换你的 TransformableNode。TransformableNode transformableNode = new TransformableNode(fragment.getTransformationSystem());变成Node myNode = new Node();你将无法再移动它与 TransformableNodes 相反,Nodes 的某些工作方式有所不同 -> 构造函数为空。

汪汪一只猫

如果你想保留 TransforableNode,你可以使用以下标志transformableNode.getTranslationController().setEnabled(false);
随时随地看视频慕课网APP

相关分类

Java
我要回答