【问题标题】:How can I delete selected object from scene using sceneform?如何使用场景形式从场景中删除选定的对象?
【发布时间】:2019-02-14 13:43:21
【问题描述】:
 private AnchorNode anchorNode;
 private void removeAnchorNode(Node nodeRemove) {

        //Remove an anchor node
        if(nodeRemove instanceof  AnchorNode){

            if(((AnchorNode)nodeRemove).getAnchor() != null) {
                ((AnchorNode) nodeRemove).getAnchor().detach();
            }
        }

        if (!(nodeRemove instanceof Camera) && !(nodeRemove instanceof Sun)) {
            nodeRemove.setParent(null);
        }
    }

上面是我的删除功能

FloatingActionButton dlt =(FloatingActionButton) findViewById(R.id.delete);
        dlt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //delete();
                removeAnchorNode(anchorNode);
            }
        });

在这部分我调用了这个函数,但是当它工作的时候,它只是删除了最后一个添加的对象,然后它不适用于其他对象。我的错在哪里?没找到。

【问题讨论】:

    标签: android arcore sceneform


    【解决方案1】:

    您的 removeAnchorNode 函数似乎足够合适。问题可能在于您“选择”anchorNode 的方式。

    我猜您可能将最后创建的AnchorNode 存储在您创建的anchorNode 对象中,因此delete 函数最初可以工作。 但是当你再次这样做时,需要选择你要删除的节点。尽管 Sceneform 负责选择节点(当您触摸它时),但您需要将引用显式存储在 anchorNode 变量中,否则您只会一次又一次地传递已删除的 AnchorNode

    【讨论】:

    • 您好,如果有效,请将答案标记为正确(如果问题是其他问题,请随时添加您自己的答案),干杯。
    猜你喜欢
    • 2013-08-23
    • 2023-03-12
    • 1970-01-01
    • 2017-10-13
    • 2015-04-28
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多