gpt4 book ai didi

android - 如何使用 sceneform 从场景中删除选定的对象?

转载 作者:行者123 更新时间:2023-11-30 05:05:11 27 4
gpt4 key购买 nike

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

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

最佳答案

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

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

关于android - 如何使用 sceneform 从场景中删除选定的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54691852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com