如何使用 arcore 和 sceneform 使用按钮从场景中删除单个可渲染对象?

2024-01-12

我正在尝试制作一个按钮,在选择 3D 模型后将其从场景中删除。

我知道删除 3d 对象的方法是使用anchor.detach()。我可以使用 node.select() 选择单个模型。但是,我不确定选择节点后如何访问锚点。

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                deleteObject(//I'm not sure how to get the anchor from the selected node//);
            }
        });

private void deleteObject(Anchor anchor){
        anchor.detach();
    }

如果您想删除特定的可渲染对象并且您已经知道锚节点(我相信您的情况来自问题),那么下面的代码将删除可渲染对象和锚节点:

private void removeAnchorNode(AnchorNode nodeToremove) {
        //Remove an anchor node
        if (nodeToremove != null) {
            arFragment.getArSceneView().getScene().removeChild(nodeToremove);
            nodeToremove.getAnchor().detach();
            nodeToremove.setParent(null);
            nodeToremove = null;
            Toast.makeText(LineViewMainActivity.this, "Test Delete - anchorNode removed", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(LineViewMainActivity.this, "Test Delete - markAnchorNode was null", Toast.LENGTH_SHORT).show();
        }
    }

吐司只是为了帮助测试,因此可以根据您的选择删除或保留。

更新 - Kotlin 版本(2020 年 4 月测试):

    private fun removeAnchorNode(nodeToRemove: AnchorNode) {
        //Remove an Anchor node
        arFragment.getArSceneView().getScene().removeChild(nodeToRemove);
        nodeToRemove.getAnchor()?.detach();
        nodeToRemove.setParent(null);
        nodeToRemove.renderable = null
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 arcore 和 sceneform 使用按钮从场景中删除单个可渲染对象? 的相关文章

随机推荐

  • spplot() 上的国家/地区标签

    我想为 spplot 上的区域添加名称标签 Example load url http gadm org data rda FRA adm0 RData FR lt gadm FR lt spChFIDs FR paste FR rowna
  • spring-context.xml 的位置

    当我在 tomcat 上运行应用程序时 spring context xml 文件位于 WEB inf spring context xml 还行吧 但是运行 junit 测试时 我必须向它提供 spring test context xm
  • Jquery 与原型 magento 冲突 - 我怎样才能分开?

    我似乎无法通过我的 Magento 网站将 jQuery 与 Prototype 分开 我已经使用更改的标签等在 JsFiddle 上工作了 但是当我将它添加到我的 magento 站点时 我不断收到未捕获的语法错误 页面位于http ww
  • C++ 中的接口继承

    我有以下类结构 class InterfaceA virtual void methodA 0 class ClassA public InterfaceA void methodA class InterfaceB public Inte
  • 使用 odp.net 和 C# 中的 OCI 连接到 Oracle

    我一直在阅读有关如何从 C win 应用程序连接到我的 Oracle 数据库的信息 但我一直 碰壁 我决定使用odp net和OCI 这样客户端计算机就不需要安装客户端 但我无法让它工作 我有一个小型测试应用程序 如下所示的代码 在我的解决
  • 试图找出 Windows Workflow 4.5 问题的根源

    我得到的错误是 工作流应用程序已中止 因为加载或 LoadRunnableInstance 操作引发异常 创建一个新的 WorkflowApplication 对象尝试加载另一个工作流实例 我正在使用 workflowapplication
  • Facebook API 获取好友相册对某些好友不起作用

    我正在使用以下 FQL 查询 select src src big from photo where aid in select aid from album where owner contactId and type profile 但
  • 获取 java.lang.NoClassDefFoundError: org/pdfbox/pdfparser/

    下面是我正在使用的代码 我提供了一个 pdf 文件和一个文本文件作为命令行的输入 import org pdfbox cos COSDocument import org pdfbox pdfparser PDFParser import
  • 在 Maven 中本地引用依赖项 jar

    在我的项目中 我使用的外部 jar 不存在于公司的 Maven 存储库中 所以我收到以下错误 Could not resolve dependencies for project Could not find artifact in htt
  • 加快 Spring Boot 启动时间

    我有一个 Spring Boot 应用程序 我添加了很多依赖项 不幸的是 看起来我需要所有这些依赖项 并且启动时间增加了很多 只是做一个SpringApplication run source args 需要 10 秒 虽然与 习惯 相比
  • Pandas:如何在python3中使用混合类型多索引的切片?

    正如我在这个部分相关的问题 https stackoverflow com questions 50097704 不可能再对混合类型序列进行排序 Python3 6 sorted foo bar 10 200 3 gt TypeError
  • 让Boost Dijkstra算法在到达目的节点时停止

    我正在使用 boost graph 及其 Dijkstra 实现 当有人使用Dijkstra算法时 可能是为了知道图中2个节点之间的最短路径 但是 由于您需要检查图中的所有节点以找到最短路径 通常 如 boost 算法 Dijkstra 会
  • 禁用应用程序内的 Linux 内存过量使用

    您可以通过以下方式调整系统范围内的内存过量使用策略sysctl https en wikipedia org wiki Sysctl调用 但是是否可以在进程本身内部针对每个进程调整此策略 我想让一个特定的实时进程永远不会使用过度使用 尽管系
  • 在 iOS 应用程序中加载网页

    如果我们加载一个网页 我们可以将其转发到 safari 但这会导致用户离开我们的应用程序 有什么方法可以让用户访问任何网页然后返回我们的应用程序 如果您想要 iOS7 之前的设备的某些浏览器类型功能 您可以使用此内联浏览器 http www
  • 使用枚举时错误 CS0246 找不到类型或命名空间名称

    单例脚本 public static ShipSingleton Instance get return instance private void Awake if instance null instance this Destroy
  • 使用 System.exit(0) 强制退出 Android 应用程序不起作用

    当我尝试通过覆盖 Android 设备后退按钮和 System exit 0 的功能来退出 Android 应用程序时 这不起作用 我有一个名为 LoginActivity 的活动和一个名为 Overview Activity 的活动 当我
  • WKWebView 支持哪些文件类型?

    UIWebView支持完整的文件类型列表 详见这个 Apple 技术问答文档 https developer apple com library ios qa qa1630 index html apple ref doc uid DTS4
  • 如何使用seaborn创建多线图?

    我正在尝试使用 Seaborn 使我的绘图在视觉上比 matplotlib 更好 我有一个数据集 其中有一列 年份 我想在 X 轴上绘制它 并使用不同颜色的线在 Y 轴上绘制 4 列 A B C D 我试图使用 sns lineplot 方
  • 模拟器:错误:检测到挂起线程“Qt 事件循环”

    当我运行 API 27 模拟器时 我得到 错误 检测到挂起线程 Qt 事件循环 我有一张显示错误的图像 正如评论中所讨论的 这是 Android 模拟器中的一个错误该问题已在 27 1 10 版本中修复 https developer an
  • 如何使用 arcore 和 sceneform 使用按钮从场景中删除单个可渲染对象?

    我正在尝试制作一个按钮 在选择 3D 模型后将其从场景中删除 我知道删除 3d 对象的方法是使用anchor detach 我可以使用 node select 选择单个模型 但是 我不确定选择节点后如何访问锚点 FloatingAction