news 2026/4/15 14:49:58

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/4/12 10:16:32

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

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

作者头像 李华
网站建设 2026/4/14 16:34:31

低代码开发中的测试盲区突破(PHP组件单元测试与集成测试最佳实践)

第一章&#xff1a;低代码 PHP 组件的测试用例在现代Web开发中&#xff0c;低代码平台通过可视化构建和组件化逻辑显著提升了开发效率。然而&#xff0c;组件行为的稳定性和可靠性仍依赖于完善的测试机制。针对低代码环境中的PHP后端组件&#xff0c;编写精准的单元测试与集成测…

作者头像 李华
网站建设 2026/4/13 15:20:34

揭秘农作物增产关键因素:R语言方差分析在农业研究中的应用

第一章&#xff1a;揭秘农作物增产的关键因素与方差分析意义在现代农业科学中&#xff0c;提升农作物产量依赖于对多种环境与管理因素的系统性评估。光照、水分、土壤养分及种植密度等变量均可能显著影响作物生长表现。为了从统计学角度识别哪些因素真正导致产量差异&#xff0…

作者头像 李华
网站建设 2026/4/12 7:19:45

篮球场景目标检测与定位_YOLO11-RFPN实现详解

1. 篮球场景目标检测与定位_YOLO11-RFPN实现详解 &#x1f3c0; 1.1. 引言 篮球比赛中的目标检测与定位一直是计算机视觉领域的热点研究方向 &#x1f914;。随着深度学习技术的不断发展&#xff0c;基于YOLO系列模型的目标检测算法在体育场景中的应用越来越广泛 &#x1f68…

作者头像 李华