Plugins

EasyAR Sense Libraries

Plugins
├── Android
│   └── libs
│       ├── arm64-v8a
│       │   └── libEasyAR.so
│       ├── armeabi-v7a
│       │   └── libEasyAR.so
│       └── EasyAR.jar
├── EasyAR.bundle
├── iOS
│   └── easyar.framework
├── x64
│   └── bin
│       └── EasyAR.dll
└── x86
   └── bin
      └── EasyAR.dll

这些是EasyAR Sense在不同系统下使用的库文件,EasyAR Sense Unity Plugin需要这些文件才能在对应系统上运行。这些库文件与 EasyAR/Scripts 文件夹中的csapi 文件来自于同一个EasyAR Sense发布版本。

Android Manifest

Plugins
└── Android
    └── AndroidManifest.xml

Unity生成Android工程时所需的AndroidManifest文件,此文件添加了相机,存储,录音权限以及加载ARCore相关配置,以确保EasyAR Sense的功能可以在Android系统中正常使用。用处如下:

  • 相机权限: 使用camera需要。

  • 存储权限: sample中的文件存储需要。

  • 录音权限: 视频录制功能需要。

  • ARCore相关配置: 使用ARCore功能的时候需要。

这个文件不是属于EasyAR Sense Unity Plugin的文件,而是为使整个插件运行所必需的配置文件。因此可以根据需求修改这个文件。另外,如果在你的工程里或是其它Unity插件中使用到了同样的文件,需要手动合并它们,确保各自的功能可以正常使用。如果只是使用某一个文件,很可能会有功能无法正常使用。合并AndroidManifest需要理解每个AndroidManifest内部的内容,建议参考Android官方文档。

ARCore Libraries

Plugins
└── Android
    └── libs
        ├── arcore-classes.jar
        ├── arm64-v8a
        │   └── libarcore_sdk_c.so
        └── armeabi-v7a
            └── libarcore_sdk_c.so

目前EasyAR Sense支持1.6版本或以上版本的ARCore。在EasyAR Sense Unity Plugin中,ARCore的支持不需要特殊配置,但手机中需要安装 Google Play Services for AR

ARCore并非必须依赖,同时它也可以使用其它方式加载(比如ARFoundation)。插件脚本中已经加入对arcore_sdk_c库的加载,这可以在EasyARSettings的配置中关闭(ARCoreSupport)。

如果不需要使用ARCore功能,可以关闭EasyARSettings的ARCoreSupport,删除或保留这些文件影响不大。

如果需要使用ARFoundation等方式加载ARCore,删除这些文件即可,ARCoreSupport开启时仍可使用ARCore功能。

ARCore SDK升级

当前插件版本中嵌入的ARCore SDK版本为1.6,支持Google Play Services for AR 1.6和以上版本。如有需要,可以升级到更新的ARCore SDK。

以升级到1.14为例,在任意Android Studio项目的build.gradle的dependencies中加入

implementation 'com.google.ar:core:1.14.0'

并编译,可以在gradle缓存中获得core-1.14.0.aar。(在计算机用户文件夹/.gradle中搜索可以找到) 将aar文件解压,使用其中的classes.jar文件替换arcore-classes.jar,使用jni/armeabi-v7a和jni/arm64-v8a文件夹下的libarcore_sdk_c.so替换对应的文件即可。