news 2026/7/24 17:52:06

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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对象,这个对象需要保留,否则订阅会被理解取消。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 13:34:04

PHP 8.6 JIT编译器重大升级(指令优化黑科技曝光)

第一章&#xff1a;PHP 8.6 JIT编译器重大升级概述PHP 8.6 即将发布&#xff0c;其最引人注目的改进之一便是对内置 JIT&#xff08;Just-In-Time&#xff09;编译器的全面升级。此次更新不仅优化了代码生成策略&#xff0c;还增强了类型推断能力&#xff0c;显著提升了动态脚本…

作者头像 李华
网站建设 2026/7/24 20:32:58

揭秘WebSocket频繁断线之谜:3种常见错误码分析与修复方案

第一章&#xff1a;WebSocket频繁断线问题概述WebSocket作为一种全双工通信协议&#xff0c;广泛应用于实时消息推送、在线协作和直播弹幕等场景。然而在实际部署中&#xff0c;频繁断线问题成为影响用户体验的主要瓶颈之一。该问题通常表现为连接在短时间内意外关闭&#xff0…

作者头像 李华
网站建设 2026/7/23 4:38:13

LPDDR6 JEDEC 原文解读学习—2.4 Data Packet Format(3)(~持续更新)

插播&#xff1a;2025年马上就结束啦&#xff0c;今天更新一篇&#xff0c;预计12/17号再更新一篇&#xff08;给自己立flag&#xff09;&#xff0c;然后2025年就休假咯~2026年继续努力码文章&#xff0c;如果有任何问题&#xff0c;欢迎大家评论区评论&#xff0c;交流。2.4.…

作者头像 李华
网站建设 2026/7/22 23:36:12

【PHP性能优化关键一步】:深入PHP 8.6内存泄漏监控与自动预警方案

第一章&#xff1a;PHP 8.6 内存泄漏检测概述在现代Web应用开发中&#xff0c;PHP 8.6 引入了多项性能优化与内存管理改进&#xff0c;但复杂的应用逻辑仍可能导致内存泄漏问题。内存泄漏会逐渐消耗系统资源&#xff0c;最终导致脚本执行失败或服务器响应变慢。因此&#xff0c…

作者头像 李华
网站建设 2026/7/24 6:39:13

PHP 8.6兼容性测试实战(资深架构师亲授迁移经验)

第一章&#xff1a;PHP 8.6兼容性测试概述随着 PHP 8.6 的发布临近&#xff0c;开发者社区对新版本的期待与关注持续升温。该版本预计将引入多项性能优化、语法增强以及底层引擎改进&#xff0c;因此在升级前进行全面的兼容性测试显得尤为关键。兼容性测试不仅确保现有项目能在…

作者头像 李华