你好ARKit
在进入增强现实的奇妙世界之前,让我们确保已具备所有先决条件。
- Xcode 9(测试版或更高版本) :ARKit在Xcode 9(测试版)或更高版本上可用。 因此,请确保下载最新版本的Xcode 9。
- 物理设备 :您将需要一个物理设备来测试您的ARKit应用程序。 建议测试设备至少包含A9处理器,这意味着iPhone 6S或更高版本或最新的iPad。
- iOS 11(测试版或更高版本) :由于ARKit是iOS 11 SDK的一部分,因此要求您的设备运行iOS 11 beta或更高版本。
根据您的Internet连接,下载和安装所有内容可能需要10分钟到45天的时间。 我在开玩笑,最多30天🙂
现在,您已经下载并安装了所有必备软件,并准备好尝试使用iOS版ARKit构建增强现实应用程序。 在本章的最后,您将了解实现ARKit应用程序的基本概念。
启动Xcode 9并创建一个新项目。 您会注意到Xcode 9带有一个专门为ARKit应用程序设计的新项目模板, 如图1所示。
图1:Xcode 9中的增强现实项目模板
选择“ 增强现实应用程序 ”模板后,按“ 下一步 ”按钮。 这将带您到项目选项屏幕,该屏幕允许您配置项目的不同属性。 对我们而言,最重要的选择是“ Content Technology ”,它允许开发人员使用SpriteKit,SceneKit或Metal框架创建ARKit应用程序。
图2:对多种内容技术的支持
确保选择SceneKit,因为本书中的大多数示例都使用SceneKit作为内容技术。 接下来,为您的项目指定一个位置,最后按“创建”按钮使ARKit项目生效。
您只有片刻的时间见证了增强现实的魔力。 运行该应用程序,并确保您的物理iPhone已插入并已连接。 图3显示了运行中的ARKit默认应用程序。 您的花园可能没有我的花园绿🙂
图3:运行中的ARKit默认应用
休斯顿! 我们有ARKit!
本章是我的《 iOS开发者的ARKit》一书的一部分。 立即获取该书,并开始构建出色的增强现实应用程序。
祝贺您运行了第一个ARKit应用程序。 在下一节中,我们将了解制作默认ARKit项目所涉及的代码。
了解项目:
在本节中,我们将研究默认ARKit项目的不同部分,并将研究创建增强现实体验所涉及的不同类。
让我们立即进入Xcode默认添加的代码。 清单1显示了ViewController的viewDidLoad函数的实现。
覆盖func viewDidLoad(){
super.viewDidLoad()
//设置视图的委托
sceneView.delegate =自我
//显示统计信息,例如fps和计时信息
sceneView.showsStatistics = true
//创建一个新场景
让场景= SCNScene(名称:“ art.scnassets / ship.scn”)!
//将场景设置为视图
sceneView.scene =场景
}
清单1:ViewController的viewDidLoad函数
在viewDidLoad内部,我们首先将场景视图委托设置为控制器的实例。 然后,我们启用统计信息属性,这将使我们能够查看调试信息,包括帧速率等。
之后,我们加载称为“ ship.scn”的SceneKit场景,该场景包含在资产文件夹中。 该场景包含飞船的实际模型。 最后,我们将sceneView场景属性设置为已加载的场景。
视图控制器的最重要职责是配置和初始化ARKit世界跟踪。 世界跟踪使我们能够跟踪现实世界中的虚拟物品,这被认为是ARKit框架工作的大脑。
如清单2所示,在viewWillAppear函数中启用了世界跟踪。
覆盖func viewWillAppear(_动画:布尔){
super.viewWillAppear(动画)
//创建会话配置
让配置= ARWorldTrackingConfiguration()
//运行视图的会话
sceneView.session.run(配置)
}
清单2:运行世界跟踪
注意:除了ARWorldTrackingConfiguration外,Apple还提供ARConfiguration,旨在为低于iPhone 6S且未运行A9处理器的设备提供更少的沉浸式AR体验。 不幸的是,在撰写本文时,ARConfiguration不能按预期工作,并且在非A9设备上使用ARConfiguration配置运行时,应用程序崩溃。
在这一点上,您可能想知道SceneView的来源。 打开Main.storyboard文件,然后查看您的视图控制器, 如图3所示。
清单3:ARSCNView作为控制器的根视图
您的视图控制器的根视图不是UIView,而是ARSCNView。 ARSCNView是一种特殊的视图,它允许显示启用了SceneKit的应用程序的增强现实视图。 SceneView实例通过使用插座连接到情节提要。 如果您将SpriteKit用作ARKit项目的内容技术,那么它将是ARSKView而不是ARSCNView。
在下一章中,我们将研究使用几何图形创建虚拟对象,使用材质进行装饰,最后使用节点将其插入世界。
结论:
在本章中,我们学习了如何使用ARKit运行第一个增强现实应用程序。 我们研究了默认ARKit应用程序的不同组件,并了解了每个组件在ARKit应用程序中的用途。