swift中arview配置3d物体的碰撞事件,一定要配置name

给3D物体添加碰撞组件,然后在给ARView配置订阅碰撞事件,并且一定要给3D对象实体配置name属性,不然不会触发碰撞订阅事件!!!!

// 创建红色方块在图片中心 func imageCenterBox(anchor: ARImageAnchor, session: ARSession) { print("创建红色方块在图片中心") if let arView = arView { // mesh是网格 let mesh = MeshResource.generateBox(size: 0.02) // matrial 是素材材质 let material = SimpleMaterial(color: .red, roughness: 0.5, isMetallic: true) // 红色方块实例 let boxEntity = ModelEntity(mesh: mesh, materials: [material]) // 将红色方块添加到中心位置,并且在y轴向上 boxEntity.position = [0, 0.01, 0] // 创建碰撞形状 let collisionShape = ShapeResource.generateBox(size: [0.02, 0.02, 0.02]) // 添加碰撞组件:可以用多个碰撞形状 boxEntity.components.set(CollisionComponent(shapes: [collisionShape])) // 必须配置,不然不会触发碰撞事件 boxEntity.name = "boxentity" // 创建锚点实例 let anchorEntity = AnchorEntity(anchor: anchor) // 锚点添加模型 anchorEntity.addChild(boxEntity) // 视图添加锚点 arView.scene.addAnchor(anchorEntity) } }

配置订阅碰撞事件:

// 收集碰撞事件的订阅,否则会不知道碰撞事件 private var cancellables = Set<AnyCancellable>() // 添加碰撞检测事件监听订阅消息 self.arView?.scene.subscribe(to: CollisionEvents.Began.self) { [weak self] event in // 处理碰撞事件 self?.onCollision(event) }.store(in: &cancellables)

cancellables是啥?

cancellables是可取消的,是框架中管理订阅生命周期的关键容器

在swift中,当你订阅一个发布者Published时,会返回一个AnyCancellable对象,这个对象需要保留,否则订阅会被理解取消。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1020514.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

n8n 2.0 中文汉化版一键部署教程 | 解除Execute Command限制

&#x1f680; n8n 2.0 中文汉化版一键部署教程 | 解除Execute Command限制&#xff0c;让自动化更自由&#xff01; &#x1f4d6; 前言 你是否在使用 n8n 时遇到过这些问题&#xff1a; ❌ 界面全是英文&#xff0c;看不懂&#xff1f;❌ Execute Command 节点被禁用&#xf…

太月香学新书《中国传统香学》首发亮相

12月11日&#xff0c;第12届全球外交官中国文化之夜在京举办。该活动由上午的“全球品牌发展暨中国品牌出海论坛”及晚上的“中国文化之夜”组成。活动旨在促进各国驻华外交官、文化学者及企业精英间的文化交流与合作&#xff0c;推动文明互鉴与民心相通。 在“全球品牌发展暨…

用梯形图+SCL玩转FactoryIO码垛控制

FactoryIO码垛搬运仿真&#xff0c;层数1-5层随意增加。 因为高度问题&#xff0c;最大高度5层。 使用简单的梯形图与SCL语言编写&#xff0c;通俗易懂&#xff0c;写有详细注释&#xff0c;起到抛砖引玉的作用&#xff0c;比较适合有动手能力的入门初学者&#xff0c;和入门学…

泛型集合性能瓶颈,90%的开发者都忽略的3个关键点

第一章&#xff1a;泛型的性能在现代编程语言中&#xff0c;泛型不仅提升了代码的可重用性与类型安全性&#xff0c;还对运行时性能产生深远影响。合理使用泛型可以避免重复的类型转换和装箱/拆箱操作&#xff0c;从而提升执行效率。减少装箱与拆箱开销 在非泛型集合&#xff0…

【Q#调试权威手册】:微软官方未公开的4个调试利器全曝光

第一章&#xff1a;Q#调试的核心挑战与现状量子计算的快速发展推动了Q#语言的应用&#xff0c;然而其调试过程面临诸多独特挑战。传统经典程序可通过断点、变量监视等手段快速定位问题&#xff0c;但在量子环境中&#xff0c;由于叠加态、纠缠态的存在以及测量导致的波函数坍缩…

手把手教你编译PHP 8.6扩展(含10个实用调试技巧)

第一章&#xff1a;PHP 8.6 扩展开发概述PHP 8.6 作为 PHP 语言演进中的重要版本&#xff0c;延续了对性能优化、类型系统增强和开发者体验提升的追求。在该版本中&#xff0c;扩展开发依然是深入底层、实现高性能功能模块的核心手段。无论是为实现特定算法加速、集成 C/C 库&a…

IU5209:30V OVP,快充申请,1A,NTC及使能功能,4节锂电池充电管理芯片

IU5209E是一款支持快充申请的4节串联锂电池升压充电管理芯片&#xff0c;集成功率MOS与异步开关架构&#xff0c;外围器件需求极少&#xff0c;能缩减方案尺寸并降低BOM成本&#xff0c;适用于蓝牙音箱、POS机、电子烟、锂电电池包、对讲机及玩具等设备。芯片输入电压范围3.6~1…

十五五智能制造数字化工厂蓝图规划及推进路线:1 张蓝图、3 条主线、6 大系统、4 阶段路线

“十五五”&#xff08;2026-2030&#xff09;期间&#xff0c;智能制造数字化工厂蓝图规划与推进路线正由“单点改造”走向“体系重构”&#xff0c;核心思路是&#xff1a;以“四级金字塔”成熟度模型为牵引&#xff0c;按“数字化转型→网络化协同→智能化升级”三阶递进&am…

某Boss直聘数据获取

&#x1f680; Boss直聘AI岗位数据爬取&#xff1a;从零到一的完整方案 &#x1f4d6; 前言 在当今AI浪潮席卷全球的时代&#xff0c;了解各大公司的AI岗位分布情况对求职者和行业分析师来说至关重要。本文将详细介绍如何通过Python爬虫技术&#xff0c;自动化获取Boss直聘平台…

揭秘PHP 8.6性能瓶颈:如何利用新特性打造超强监控系统

第一章&#xff1a;PHP 8.6 的性能监控面板PHP 8.6 引入了内置的轻量级性能监控面板&#xff0c;开发者无需依赖第三方扩展即可实时查看脚本执行效率、内存使用和函数调用堆栈。该功能专为开发与调试环境设计&#xff0c;可通过配置快速启用&#xff0c;帮助定位性能瓶颈。启用…

2025冬暖影展奔赴广州,以光影开启时空对话

本周&#xff0c;全国艺联2025“艺术新作冬暖主题影展”携十部尚未公映的国产艺术佳作翩然落地广州。12月9日至11日&#xff0c;《爷爷奶奶那些事》、《燃比娃》、《长夜将尽》三部展映影片的主创团队惊喜现身映后交流环节&#xff0c;与羊城观众共同开启跨越时空的真挚对话&am…

揭秘量子算法落地难题:3个关键突破点让你少走5年弯路

第一章&#xff1a;量子算法的实现量子计算通过利用量子叠加和纠缠等特性&#xff0c;在特定问题上展现出超越经典计算机的潜力。实现量子算法需要在量子硬件或模拟器上构建量子电路&#xff0c;并精确控制量子门操作。目前主流的开发框架如Qiskit、Cirq和PennyLane提供了高级接…

为什么你的GraphQL API不够灵活?PHP字段别名设计的4个致命误区

第一章&#xff1a;为什么你的GraphQL API不够灵活&#xff1f;PHP字段别名设计的4个致命误区在构建现代API系统时&#xff0c;GraphQL凭借其按需查询的能力成为首选。然而&#xff0c;许多PHP开发者在实现字段别名&#xff08;Field Aliasing&#xff09;时&#xff0c;常因设…

掌握这5种AOT调试黑科技,效率提升300%不是梦

第一章&#xff1a;AOT调试技术概述Ahead-of-Time&#xff08;AOT&#xff09;编译是一种在程序运行之前将源代码或中间代码转换为原生机器码的技术&#xff0c;广泛应用于现代高性能语言运行时环境&#xff0c;如Go、Rust以及.NET Native等。与即时编译&#xff08;JIT&#x…

【紧急预警】物联网安全漏洞频发,部署时必须配置的4道防火墙

第一章&#xff1a;物联网安全现状与挑战 随着物联网&#xff08;IoT&#xff09;设备在智能家居、工业控制、医疗健康等领域的广泛应用&#xff0c;其面临的安全威胁也日益严峻。大量设备因设计初期忽视安全机制&#xff0c;导致暴露在公网中的节点极易成为攻击入口。缺乏统一…

IntelliJ IDEA 安装 pmd-idea-1.9.0.zip 插件详细教程

PMD-IDEA 是 IntelliJ IDEA 的一个代码检查插件&#xff0c;基于 PMD​ 这个静态代码分析工具做的。 1. 下载插件 安装包下载&#xff1a;https://pan.quark.cn/s/d10d1c36a788 下载完就是一个 zip 文件&#xff0c;别解压它&#xff0c;就留着原样。 2. 打开 IDEA 打开你的…

从入门到精通:用R Shiny打造可交互的多维度数据仪表盘

第一章&#xff1a;R Shiny 的多模态图表交互控件在构建数据驱动的 Web 应用时&#xff0c;R Shiny 提供了强大的交互能力&#xff0c;尤其在多模态图表控件的集成方面表现突出。通过结合输入控件与动态渲染函数&#xff0c;开发者能够实现用户操作与可视化输出的实时联动。基础…

leetcode155 最小栈(Java)

思路&#xff1a;创建两个栈&#xff0c;一个用来“正常进出”&#xff0c;另一个记录“当前最小值”一、关于 “方法名重复会不会冲突”原因是&#xff1a;MinStack 类中的 push/pop 是自定义方法&#xff0c;而 stack1/stack2 是类内部的 Stack 对象 —— 二者属于不同的 “作…

Laravel 13的多模态事件监听全攻略(颠覆传统监听模式)

第一章&#xff1a;Laravel 13的多模态事件监听概述Laravel 13 引入了对多模态事件监听的原生支持&#xff0c;使得开发者能够在一个统一的架构下处理来自不同输入源的事件&#xff0c;例如 HTTP 请求、队列任务、WebSocket 消息甚至 CLI 命令。这一特性强化了事件驱动架构的灵…

【PHP 8.6性能飞跃核心】:JIT编译缓存策略深度解析与实战优化

第一章&#xff1a;PHP 8.6 JIT编译缓存的演进与核心价值PHP 8.6 对内置的JIT&#xff08;Just-In-Time&#xff09;编译器进行了深度优化&#xff0c;尤其在编译缓存机制方面实现了关键性突破。这一版本通过引入持久化JIT opcode缓存&#xff0c;显著降低了动态语言在运行时的…