Java 阿科雷–;禁用ModelRenderable的移动

Java 阿科雷–;禁用ModelRenderable的移动,java,android,arcore,sceneform,Java,Android,Arcore,Sceneform,下面是一段代码,我可以使用它来放置模型 private void addNodeToScene(ArFragment fragment, Anchor createAnchor, ModelRenderable renderable) { AnchorNode anchorNode = new AnchorNode(createAnchor); TransformableNode transformableNode = new TransformableNode(fragmen

下面是一段代码,我可以使用它来放置模型

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();
}
但是一旦模型被放置,我就可以移动模型了


是否有任何方法可以禁止用户在放置模型后移动模型?

用节点替换TransformableNode

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

Node myNode = new Node();
你再也不能移动它了


与TransformableNodes不同的是,有些情况下节点的工作方式不同->构造函数为空

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

transformableNode.getTranslationController().setEnabled(false);
如果不希望移动模型,请使用simple Node()。TransformableNode仅用于转换目的。