Bootstrap

使用ARCore+Unity概述

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),之后运行即可!如果出现闪退情况可能是没配置好,根据错误百度,之后我会上传一个错误汇总的链接。

;