简体   繁体   English

ARCore - 禁用 ModelRenderable 的移动

[英]ARCore – Disable a movement of ModelRenderable

Here is the piece of code using which I am able to place the model.这是我能够放置模型的一段代码。

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

But once the model is placed, I can move the model around.但是一旦模型放置好,我就可以四处移动模型。

Is there any way I can disable the user from moving the model around once it has been placed?有什么方法可以禁止用户在放置模型后四处移动模型?

replace your TransformableNode with a Node.用一个节点替换你的 TransformableNode。

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

becomes变成

Node myNode = new Node();

you won't be able to move it then anymore你将无法再移动它

Some things work differently with Nodes as opposed to TransformableNodes -> The constructor being empty.与 TransformableNodes 相反,Nodes 的某些工作方式有所不同 -> 构造函数为空。

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

transformableNode.getTranslationController().setEnabled(false);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM