ARFoundation之路-环境配置(Android)

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

  ARFoundation支持跨平台开发,但是开发环境配置与发布部署却差异较大,因此,环境配置将分成Android与iOS两篇来讲解。
  ARFoundation在Android端使用的是ARCore的底层技术,因此,环境准备与单独使用ARCore进行开发相似,请参见博文《ARCore之路-环境准备》(不需要安装ARCore unity SDK ),本文假设读者已经安装Unity2019.1最新版。

(一)插件导入

  现在我们将创建一个新的项目,并导入ARFoundation和ARCore XR Plugin。在开始菜单或者桌面的Unity图标(或者Unity Hub图标)启动Unity,点击New新建一个项目,我们命名为Hellowrold,然后单击“创建项目”按钮。
在这里插入图片描述
  待Unity主统一窗口打开后,点击Unity 菜单栏 window–>Package Manager,将会打开Package Manager对话框。

在这里插入图片描述
  Package Manager对话框默认不显示ARFoundation和ARCore XR Plugin,因为这几个插件目前都处在preview状态。点击对话框中的Advanced下拉菜单,选择Show preview package,这将把所有的preview插件也都显示出来。
在这里插入图片描述
在这里插入图片描述
  在左侧列表中选择ARFoundation后右侧面板将会显示该插件的详细信息,点击右下角的“Install”,安装插件。如此操作,将ARCore XR Plugin插件也安装好。至此,已经将开发Android的AR所需插件都导入了。

(二)设置开发环境

  在Unity窗口中,按Ctrl+Shift+B快捷键,或者在菜单栏中选择File->Build Settings…,打开设置窗口。选择“Platform”下的“Android”选项,然后单击“Switch Platform”按钮切换到Android平台。当Unity标志出现在Android选项旁边时,发布平台就切换成Android了,如下图所示。
在这里插入图片描述
  单击下方的“Player Settings”按钮继续后续设置,如下图所示,按顺序依次选择Player,在Player栏中Company Name与Product Name中填写公司名与产品名,选择Android小图标,在Other Setting选项卡中取消勾选Multithreaded Rendering(多线程渲染),最后还要删除Vulkan,因为Android不支持Vulkan。
在这里插入图片描述
  继续往下滚动,在Identification栏中,PackageName填写应用程序包名,建议与上图Company Name和Product Name中输入的公司和程序包名一致,这个值要求唯一,因为如果它与另一个应用程序具有相同的包名,可能会导致问题。另外,我们还需要设置与ARCore兼容的Android最低版本,找到“Minimun API level”选项,点击其下拉菜单,选择“Android7.0‘nougat’(API level 24)”或以上,正如这个选项名字一样,应用程序与ARCore将不会在Nougat版本之前的Android设备上运行。同时,我们还需要设置一下“Target API Level”,这里设置的是 “Android 8.0 ‘Oreo’ (API level 26)”,因为笔者的测试手机就是这个版本,读者可以根据自己的需要设置,但目标版本不得低于Nougat,不然开发的AR应用将无法运行,如下图所示。

在这里插入图片描述
   在完成以上设置后,点击“Other Settings”文字以收起Other Settings设置折叠栏,然后点击“XR Settings”展开之,在使用ARCore原生SDK进行开发时,要求选中“ARCore Supported”复选框以确保应用得到ARCore的支持,但是在使用ARFoundation和ARCore XR Plugin进行Android AR开发时一定不要选择这个勾,不然编译将通不过。
在这里插入图片描述
  完成上述设置操作后,在Unity菜单中点击 Edit->Preferences,打开Unity Preferences对话框,如下图所示,选择External Tools选项卡。在这里,我们不仅可以设置使用的代码开发IDE、图片编辑器,最重要的是设置Android SDK和JDK的路径。在设置时确保路径正确,否则将无法正确编译生成Android应用(这个设置只需要操作一次,与应用开发项目无关,即设置完一次后再创建新应用也不必再次设置)。在2019版Unity中,为了简化用户的操作,Unity在安装的时候会进行环境检测,如果检测到已安装JDK和Android SDK后会自动进行设置,如果没有检测到Unity也可以进行集成安装(安装Unity时会一并安装JDK和Android SDK),无需要用户单独安装JDK和Android SDK。
在这里插入图片描述
   在完成以上设置后,下面我们来搭建ARFoundation开发AR应用的基础框架,这个基础框架所有AR应用通用。

(三)搭建基础框架

  在Unity打开的中,我们重命名场景文件为“Helloworld”,为后面统一管理文件,在Projects窗口Assets目录下新建Prefabs、Scripts两个文件夹,同时在Hierarchy窗口中删除Main Camera(因为ARFoundation AR Session Origin只带有一个AR摄像机,Directional Light可根据需要决定是否删除),如下图所示。
在这里插入图片描述
  在Hierarchy窗口中的空白处点击鼠标右键,在弹出的级联菜单中依次选择XR–>AR Session和XR–>AR Session Origin,新建这两个AR基础组件。
在这里插入图片描述
  在Hierarchy窗口中的空白处点击鼠标右键,在弹出的级联菜单中依次选择XR–>AR Default Plane,将Hierarchy窗口中生成的AR Default Plane拖动到Project窗口中的Prefabs文件夹下,制作一个平面prefab,如下图所示,然后删除Hierarchy窗口中的AR Default Plane对象。
在这里插入图片描述
  在Hierarchy窗口选中AR Session Origin对象,然后在Inspector窗口中点击Add Component按钮,并在弹出的搜索中搜索“AR Plane Manager”,并添加该组件,如下图所示。
在这里插入图片描述
  将Project窗口中Prefabs文件夹下的AR Default Plane拖到AR Plane Manager组件下的Plane Prefab属性框,如下图所示。
在这里插入图片描述
  至此,AR应用的基础框架我们已经搭建好了,这是一个ARFoundation开发AR应用的基础框架,流程通用。

(四)AppController

  在Project窗口Scripts文件夹下,空白处点击鼠标右键,在弹出的级联菜单中依次选择Create -->C# Script,新建一个脚本文件,并命名为AppController,如下图所示。
在这里插入图片描述
  双击AppController脚本,在Visual Studio中编辑该脚本,添加如下代码。

  在上段代码中,首先我们使用[RequireComponent(typeof(ARRaycastManager))]属性确保添加该脚本的对象上必须要有ARRaycastManager组件,因为射线检测需要用到ARRaycastManager组件。在Update()方法中,我们对手势进行射线检测,在检测到的平面上放置一个虚拟物体,如果该虚拟物体已存在,则将该虚拟物体的移动到射线检测与平面的碰撞点。

(五)运行Helloworld

  经过以上步骤,整体AR应用框架已完全搭建起来了,最后,我们在Hierarchy窗口中制作一个cube,为其赋上红色材质,将其Scale缩放成(0.1,0.1,0.1),最后将其制作成Prefab并删除Hierarchy场景中的cube,如下图所示。

在这里插入图片描述
  最后一步,在Hierarchy窗口中选中AR Session Origin,为其添加前面编写的AppController脚本(可以使用Add Component在搜索框中搜索AppController添加,也可以直接把AppController脚本拖到AR Session Origin对象上),并将上一步制作的cube拖到AppController脚本的Spawn Prefab属性框中。
在这里插入图片描述
  AR应用已开发完,将ARCore支持的手机通过USB线或者WiFi连接上电脑,具体连接方法请参考博文《ARCore之路-连接设备调试应用》,直接按Ctrl+Shift+B组合键(或者选择File-> Build Settings)打开Build Settings对话框。在打开的对话框中保证选中当前场景,点击Build And Run,设置发布后的程序名,最后点击“保存”按钮开始编译生成apk,生成的apk应用会自动安装到连接的手机上并启动运行,如下图所示。
在这里插入图片描述
  如若编译没有错误,在Helloworld AR应用打开后,找一个相对平坦且纹理比较丰富的平面左右移动手机进行平面检测,在检测到平面后,手指点击手机屏幕上已检测到的平面,将会在该平面上加载一个小立方体,如下图所示。至此,我们使用ARFoundation开发的Android Helloworld AR应用已成功。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ARFoundation是一个用于在移动设备上创建现实增强应用程序的开发框架。人脸跟踪编程是ARFoundation系列教程中的一部分。 人脸跟踪是通过相机捕捉实时视频流并使用AR技术来检测和跟踪人脸的过程。这个过程涉及到计算机视觉和人工智能的技术,可以在移动设备上实时地识别人脸,进而应用各种效果和交互。 在ARFoundation系列教程中学习人脸跟踪编程,你将学习如何使用ARFoundation和Unity引擎来构建具有人脸追踪功能的应用程序。教程会向你介绍如何在Unity中创建一个AR项目,并使用ARFoundation的API来实现人脸追踪功能。 首先,你需要在Unity中导入ARFoundation库并设置相机权限。然后,你可以创建一个3D模型来代表人脸,并将其与人脸跟踪的数据进行关联。在跟踪开始后,你可以通过获取人脸的特征点信息和姿势来实时地更新模型的位置和角度。 此外,你还可以根据人脸的表情特征,例如眨眼、微笑等,来触发应用程序中的效果或交互。例如,你可以通过检测到用户眨眼的动作来实现快门的触发,拍摄照片或录制视频。 通过学习ARFoundation系列教程中的人脸跟踪编程,你将能够掌握如何使用AR技术在移动设备上实现实时人脸跟踪功能。这将为你开发创新的增强现实应用程序提供基础,并且能够为用户提供更加沉浸式和交互性的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值