iOS - 上手AR
前言
随着 Apple Vision Pro 的发布,势必掀起新一波的Ar潮,简单了解一下来个小Demo
开始
要在iOS中创建一个的AR物体,你可以使用 ARKit 和 SceneKit 来实现
首先,确保你的项目已经导入了 ARKit 和 SceneKit 框架。你可以在 Xcode 中的项目设置中添加 ARKit.framework 和 SceneKit.framework 到 "Frameworks, Libraries, and Embedded Content" 部分
然后,在你的程序文件中,导入 ARKit 和 SceneKit
import UIKit
import ARKit
接下来,创建一个 ARSCNView,并将其添加到你的视图层次结构中:
// 创建 ARSCNView 实例
sceneView = ARSCNView(frame: view.bounds)
view.addSubview(sceneView)
sceneView.delegate = self
// 创建 SCNScene 实例,并设置为 sceneView 的场景
let scene = SCNScene()
sceneView.scene = scene
然后,在视图控制器的生命周期方法中,配置 ARSession 并启动 AR 会话:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 配置 AR 会话并启动
let configuration = ARWorldTrackingConfiguration()
sceneView.session.run(configuration)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// 暂停 AR 会话
sceneView.session.pause()
}
现在,已经设置好 ARKit 和 AR 会话已经开始运行。接下来,我们将创建3D 模型:
func createBallNode() {
// 创建球体几何体
let ballGeometry = SCNSphere(radius: 0.1)
let ballMaterial = SCNMaterial()
ballMaterial.diffuse.contents = UIImage(named: "cxkj.webp") // 使用纹理图片
ballGeometry.materials = [ballMaterial]
// 在屏幕范围内生成随机位置坐标
let randomX = Float.random(in: -1.0...1.0) // 在屏幕宽度范围内生成随机 X 坐标
let randomY = Float.random(in: -1.0...1.0) // 在屏幕高度范围内生成随机 Y 坐标
let randomZ = Float.random(in: -3.0...0.0) // 在屏幕深度范围内生成随机 Z 坐标
ballNode = SCNNode(geometry: ballGeometry)
ballNode.position = SCNVector3(randomX, randomY, randomZ)
// 将球体节点添加到场景的根节点上
sceneView.scene.rootNode.addChildNode(ballNode)
}
最后我们通过点击事件将3D模型添加到场中
@objc func handleTap(_ gesture: UITapGestureRecognizer) {
if gesture.state == .ended {
createBallNode() // 创建球体节点
}
}
效果
作者:土豆崽xxx
链接:https://juejin.cn/post/7248424501813067813
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://juejin.cn/post/7248424501813067813
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。