1.ARCore概述
ARCore是Google的构建增强现实体验的平台。通过使用不同的API,ARCore使您的手机能够感知其环境,了解世界并与信息进行交互。某些API可在Android和iOS上使用,以实现共享的AR体验。
ARCore使用三种关键功能将虚拟内容与现实世界集成在一起,就像通过手机的摄像头看到的那样:
2.ARCore工作原理
从根本上说,ARCore正在做两件事:跟踪移动设备在移动过程中的位置,以及建立自己对现实世界的理解。
ARCore的运动跟踪技术使用手机的摄像头来识别有趣的点(称为特征),并跟踪这些点随时间的移动方式。结合这些点的移动和手机惯性传感器的读数,ARCore可以确定手机在空间中移动时的位置和方向。
除了识别关键点外,ARCore还可以检测平面,例如桌子或地板,还可以估计其周围区域的平均照明度。这些功能相结合,使ARCore可以建立自己对周围世界的了解。
ARCore对现实世界的理解使您能够以与现实世界无缝集成的方式放置对象,注释或其他信息。您可以在茶几的角上放个午睡的小猫,或用关于画家的传记信息为画作注释。运动跟踪意味着您可以从任何角度四处走动并查看这些对象,即使您转过身离开房间,当您回来时,小猫或注解也将恰好位于您离开的地方。
更加详细的工作原理:基本概念传送门
3.ARCore在Unity平台功能:传送门
4.Unity+ARCore配置:ARCore-Unity-Sdk、支持ARCore手机、XR Legacy和Multiplayer HLAPI(使用过时库导致报错需要下载包,Unity2019/2020需要安装)、Andriod SDK和Gradle。
ARCore-Unity-Sdk下载:ARCore Sdk
手机:支持型号
XR Legacy和Multiplayer HLAPI:在Unity Window->Package Manager下载
Andriod SDK和Gradle:下载Unity时添加的包,没有下载可用Unity Hub下载(需要注意的是版本尽量靠前,太旧不支持会报错)。
当前我的版本是Unity2019.4.28和ARCore1.25.0。
5.打包发布APK:
导入ARCore之后,打开Assets/GoogleARCore/Examples/HelloAR/Scenes/下HelloAR案例,构建Andriod打包版本。
File->Build Setting选择Andriod平台,点击Switch Platform切换安装对应平台插件。
点击Player Settings选择Player,勾选掉Mutithreading Rendering,Minimum API Level选择andriod 7.0 ‘牛轧糖’以上的版本。
XR Settings勾选ARCore Surpported。
Andriod11和Unity2020.1及之前版本要配置Gradle。
Player->Build下勾选两个Gradle Template,之所以需要Gradle是因为Unity2019之后内部默认了Gradle打包方式,而2019之前的可以选择Internal内部的打包方式。
Gradle打包和其他方式区别。
勾选gradle之后会在Assets下生成Plugins包,打开之后需要对里面的mainTemplate.gradle和launcherTemplate.gradle代码修改。将文件顶部注释代码删掉,然后复制如下代码黏贴到文件顶部。
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
repositories {
google()
jcenter()
}
dependencies {
// Must be Android Gradle Plugin 3.6.0 or later. For a list of
// compatible Gradle versions refer to:
// https://developer.android.com/studio/releases/gradle-plugin
classpath 'com.android.tools.build:gradle:3.6.0'
}
}
allprojects {
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
}
}
}
删除掉Graphics APIs下面的Vulan,Andriod不支持会出现闪退现象。
至此配置完成,点击Build就可以正常打包,如果报错,根据报错修改。
6.安装到手机上之后,还需要下载google services for AR(原来叫ARCore),之后运行即可!如果出现闪退情况可能是没配置好,根据错误百度,之后我会上传一个错误汇总的链接。