ARFoundation之路-环境配置(iOS)之一

版权声明:Davidwang原创文章,严禁用于任何商业途径,授权后方可转载。

  前文我们讲述了ARFoundation开发Android应用的开发环境配置与发布部署,本文主要讲述在Mac电脑上使用Unity开发ARFoundation AR应用的环境配置与发布部署,ARFoundation在iOS端使用的是ARKit的底层技术,并且Unity工程不能一次性发布成iOS包文件,Unity利用ARFoundation发布iOS AR应用需要分为两步:第一步使用Unity生成XCode工程文件,第二步利用XCode编译工程文件发布应用ipa文件,本文假设读者已经安装Unity2019.1版本与XCode 10。

(一)插件导入

  现在我们将创建一个新的项目,并导入ARFoundation和ARKit XR Plugin。在程序坞或者dock栏上点击Unity图标(或者Unity Hub图标)启动Unity,点击New新建一个项目,选择工程类型、填写项目名称和项目存放位置,我们命名为Helloworld,最后单击右下角“创建”按钮创建项目,如下图所示。
ARFoundation之路-环境配置(iOS)之一_第1张图片
  待Unity窗口打开后,点击Unity 菜单栏 window–>Package Manager,将会打开Package Manager对话框。

ARFoundation之路-环境配置(iOS)之一_第2张图片
  Package Manager对话框默认不显示ARFoundation和ARKit XR Plugin,因为这几个插件目前都处在preview状态。点击对话框中的Advanced下拉菜单,选择Show preview package,这将把所有的preview插件也都显示出来。
ARFoundation之路-环境配置(iOS)之一_第3张图片
ARFoundation之路-环境配置(iOS)之一_第4张图片
  这里需要注意,目前ARKit正式版是2.0,XCode正式版是10.2,如果这里我们直接安装ARFoundation2.2和ARKit XR Plugin2.2编译的时候会报如下错误:

Undefined symbol: OBJC_CLASS$_ARCollaborationData
Undefined symbol: OBJC_CLASS$_ARSkeletonDefinition
Undefined symbol: OBJC_CLASS$_ARBodyAnchor
Undefined symbol: OBJC_CLASS$_ARBodyTrackingConfiguration
Undefined symbol: OBJC_CLASS$_ARMatteGenerator

  原因是ARFoundation2.2包含还未发布的ARKit3.0的实验内容,而编译运行ARKit3.0至少需要Xcode 11 beta和iOS 13 beta,为简单起见,这里我们不安装ARFoundation2.2而是安装2.1版,步骤如下:在上图中点击ARFoundation左侧的小三角图标,打开折叠栏,然后点击“See all versions”文字链接,展开版本选择栏,选中Preview.3 - 2.1.0,然后带你点击详情窗口右下角的“Install”安装,如下图所示。如此操作,再将ARKit XR Plugin2.1版也安装上。
ARFoundation之路-环境配置(iOS)之一_第5张图片
ARFoundation之路-环境配置(iOS)之一_第6张图片
  至此,已经将开发iOS的AR所需插件都导入了。

(二)设置开发环境

  在Unity窗口中,按Command+Shift+B快捷键,或者在菜单栏中选择File->Build Settings…,打开设置窗口。选择“Platform”下的“iOS”选项,然后单击“Switch Platform”按钮切换到iOS平台。当Unity标志出现在iOS选项旁边时,发布平台就切换成iOS了,如下图所示。
ARFoundation之路-环境配置(iOS)之一_第7张图片

  单击左下方的“Player Settings”按钮继续后续设置,如下图所示,按顺序依次选择Player,在Player栏中Company Name与Product Name中填写公司名与产品名,选择iOS平台小图标,展开Other Setting选项卡,如下图所示。
ARFoundation之路-环境配置(iOS)之一_第8张图片
  在Identification栏中,PackageName填写应用程序包名,建议与上图Company Name和Product Name中输入的公司和程序包名一致,这个值要求唯一,因为如果它与另一个应用程序具有相同的包名,可能会导致问题。并设置好应用程序的版本号,如下图所示。
ARFoundation之路-环境配置(iOS)之一_第9张图片
  继续往下滚动,填写使用摄像机的请求信息,这会在AR应用第一次启动时向用户请求摄像机使用权限。设置好Target Device,目标设备可以是iPhone,也可以是iPad,也可以同时为iPhone+iPad。因为我们使用真机进行应用调试,我们设置Target SDK为Device SDK。设置最低iOS系统版本为11.0,因为支持ARKit的最低iOS版本是11.0。最后设置处理器架构为ARM64。
ARFoundation之路-环境配置(iOS)之一_第10张图片
  细心的读者可能已经发现,在上图中有一个“Requires ARKit support”选项,这个选项可以勾选,也可以不勾选,不影响AR应用。至此,我们已完成了利用ARFoundation开发iOS AR应用的环境配置工作。

(三)搭建基础框架

  在完成以上设置后,下面我们来搭建ARFoundation开发AR应用的基础框架,这个基础框架所有AR应用通用。在Project窗口Scenes文件夹中,我们重命名场景文件为“Helloworld”,同时,为后面统一管理文件,在Projects窗口Assets目录下新建Prefabs、Scripts两个文件夹,然后在Hierarchy窗口中删除Main Camera(因为ARFoundation AR Session Origin只带有一个AR摄像机,Directional Light可根据需要决定是否删除),如下图所示。
ARFoundation之路-环境配置(iOS)之一_第11张图片
  在Hierarchy窗口中的空白处点击鼠标右键,在弹出的级联菜单中依次选择XR–>AR Session和XR–>AR Session Origin,新建这两个AR基础组件。
ARFoundation之路-环境配置(iOS)之一_第12张图片
  在Hierarchy窗口中的空白处点击鼠标右键,在弹出的级联菜单中依次选择XR–>AR Default Plane,将Hierarchy窗口中生成的AR Default Plane拖动到Project窗口中的Prefabs文件夹下,制作一个平面prefab,如下图所示,然后删除Hierarchy窗口中的AR Default Plane对象。
ARFoundation之路-环境配置(iOS)之一_第13张图片
  在Hierarchy窗口选中AR Session Origin对象,然后在Inspector窗口中点击Add Component按钮,在弹出的搜索中搜索“AR Plane Manager”,并添加该组件,如下图所示。
ARFoundation之路-环境配置(iOS)之一_第14张图片
  将Project窗口中Prefabs文件夹下的AR Default Plane拖到AR Plane Manager组件下的Plane Prefab属性框,如下图所示。
ARFoundation之路-环境配置(iOS)之一_第15张图片
  至此,AR应用的基础框架我们已经搭建好了,这是一个ARFoundation开发iOS AR应用的基础框架,流程通用。而且通过对比前文我们可以发现,在基础框架搭建上,Android开发与iOS开发完全一致,后面我们也会看到,编写的代码也是完全一致的,这也就是ARFoundation出现的意义,即一次开发多平台部署,除了环境配置有所不同,其他对象与代码编写均一样,省去了开发人员开发不同平台AR应用的麻烦。

你可能感兴趣的:(ARFoundation之路)