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);
}
});
,在这一部分中,我调用该函数,但是一直在工作时,它只会删除最后添加的对象,然后对其他对象不起作用。我的错在哪里我找不到。
答案 0 :(得分:0)
您的removeAnchorNode函数似乎足够正确。问题可能出在您“选择” anchorNode的方式上。
我想您可能正在将最后创建的AnchorNode
存储在您创建的anchorNode对象中,因此删除功能最初会起作用。
但是,再次执行此操作时,需要选择要删除的节点。尽管Sceneform(在您触摸它时)会选择节点,但您需要将引用显式存储在anchorNode变量中,因为否则,您将一次又一次地传递已删除的AnchorNode
。