用途:在 iOS 上用 RealityKit 负责渲染、ARKit 负责世界追踪与场景理解,构建增强现实与 3D 体验。面向 Swift 6.3 / iOS 26+。
主要能力与用法: 权限与兼容性:在 Info.plist 中添加 NSCameraUsageDescription;仅在 AR 为绝对需求时把 arkit 加入 UIRequiredDeviceCapabilities,否则运行时检查 ARWorldTrackingConfiguration.isSupported 并提供 3D 回退(content.camera = .virtual)。 RealityView:SwiftUI 的 RealityKit 内容容器。Make 闭包异步加载实体、材质并搭建初始场景层级;Update 闭包响应 SwiftUI 状态变化并修改实体属性或动画;Attachments 通过 RealityViewContent.attachments 把 SwiftUI 视图锚定到 3D 实体。 射线与命中:ARKit Raycast(raycast(from:allowing:alignment:))与真实物理表面(地板、桌面、墙壁)相交;RealityKit Hit Test(scene.hitTest / entity.hitTest)与带 CollisionComponent 的虚拟 3D 网格相交,二者需区分。 ECS:Entity 为场景层级中的身份容器;Component 为附着实体的纯数据结构(如 ModelComponent、CollisionComponent、InputTargetComponent 及自定义组件);System 为遵循 System 协议的逐帧逻辑,处理匹配特定组件集合的实体。 按任务路由:加载 USDZ、材质与程序化几何见实体创建与材质;锚定到平面、面部、图像或世界坐标见锚定与世界追踪;手势操控(旋转、缩放、拖拽)与命中测试见手势与交互;物理、碰撞检测与射线放置见物理与射线。
常见错误:缺少 NSCameraUsageDescription 导致 RealityView 初始化时崩溃;与缺少 CollisionComponent 和 InputTargetComponent 的实体交互;在主 actor 同步加载大型 USDZ 拖慢帧率;混淆虚拟命中测试与 ARKit 真实表面射线;未为不支持世界追踪的设备提供非 AR 回退。
限制:资料未提供具体收费、价格、平台范围与效果数据。