• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

ARFoundation入门踩过的那些坑

武飞扬头像
俗人杂文
帮助1

ARFoundation入门

Android支持使用ARCore设备列表
Android(Google Play)*运行在搭载Google Play应用商店的设备上
.
Android 7.0 或更高版本(如下所示,个别型号需要更高的版本)
若你的应用为AR可选应用,请修改minSdkVersion明:'minSdkVersion>14'(API Level 14,Ice Cream Sandwich,version
4.0.1-4.0.2)
若你的应用为AR必备应用,请修改minSdkVersion声明:minSdkVersion 2 24(API Level 24,Nougat,version 7.0)Android(中)
在中国,设备不搭载Google应用商店。您可以从以下应用商店中选择其一来安装ARCore:
.
Xiaomi app store(米应用商店)
Huawei Apps Gallery(为应用商店)OPPO APP Market(OPPO 软件商店)
.
Samsung Galaxy Apps(E星应用市)
-Appstore(vivo应用商店)

谷歌官方查看支持ARCore设备地址:ARCore支持的设备| Google Developers

unity官方的API:点击直达

ARFoundation 示例地址:ARFoundation Samples

官方手册

踩过的那些坑之

                          --导出安卓出现黑屏

在手机没有安装GooglePlay服务的时候,打开就会黑屏  一定要记得安装;

安装地址:各大应用商店

学新通

在构建的时候进行如下设置:

在弹出的窗口中做如下设置: Other Settings中 删除Vulkan,取消Multithreaded Rendering, Minimum APILevel 调整为28 ,Scripting Backend 改为IL2CPP(如果不能打包就选mono),勾选ARM64

学新通

学新通

再选择左边的XR Plug-in Management,勾选 ARCore 

学新通

二、打包失败,Gradie构建失败

问题:

 CommandInvokationFailure: Gradle build failed.
C:\Program Files\Java\jdk1.8.0_171\bin\java.exe -classpath “C:\Program Files\Unity2017.4.2.0\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx1024m” “assembleRelease”
 

解决办法:修改JDK,安装1.8.0_171,然后配置环境变量;

三、AndroidJDK&SDK

安装方法两个:

1.下载AndroidJDK&NDK工具包,或者Android Studio,直接安装配置;

2.unityHub,直接下载的时候选择模块;在下载的时候可能会出现长时间的等待,取决于你的网络问题,有渠道的可以尝试绿色上网;

配置问题:

         Mininum API Level设置,记得勾选安卓7.0,因为最低支持7.0不然会报错;

学新通

四、 Gradle Project构建卡死

用的版本2019unity,默认下载的Gradie为5.01,由于太低,需要升级,我们可以重新下载一个解压进去重新指定就可以了;Gradie下载地址

学新通

 错误一:Gradie版本问题

解决办法:

点击上面网址,下载最新的Gradie,然后解压出来将里面lib拷贝到默认原路径;

学新通

错误二:Missing ‘package’ key attribute on element package at [:arcore_client:] AndroidManifest.xml:30:9-54

 解决办法:

打开Project Settings > Player > Android(就是安卓那个图标)-> Publishing Settings,把这两个勾上,然后他会在下面对应的路径的地方各生成一个文件。

学新通

 然后再编辑器中会出现这两个文件,用记事本或者VS打开删除开头注释行;

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN

学新通

然后粘贴如下代码:

  1.  
    buildscript {
  2.  
    repositories {
  3.  
    谷歌()
  4.  
    jcenter()
  5.  
    }
  6.  
    dependencies {
  7.  
    // Must be Android Gradle Plugin 3.6.0 or later. For a list of
  8.  
    // compatible Gradle versions refer to:
  9.  
    // https://developer.android.com/studio/releases/gradle-plugin
  10.  
    classpath 'com.android.tools.build:gradle:3.6.0'
  11.  
    }
  12.  
    }
  13.  
     
  14.  
    allprojects {
  15.  
    repositories {
  16.  
    谷歌()
  17.  
    jcenter()
  18.  
    flatDir {
  19.  
    dirs 'libs'
  20.  
    }
  21.  
    }
  22.  
    }
学新通

然后可以正常构建了。 

图像跟踪识别

在ARFoundation中,图像跟踪系统依据参考图像为库的图像信息尝试在周围环境中检测到匹配的2D图像并跟踪之,在ARFoundation的图像跟踪处理中,有一些特定的术语如下表所示。

学新通

在ARFoundation中,图像跟踪的操作使用分成两步,第一步是建立一个参考图像库,第二步是在场景中挂载AR Tracked Image Manager组件,并将一个需要实例化的Prefab赋给其Tracked Image Prefab即可,下面我们来具体操作。

  按上述步骤,在Unity中新建一个工程,第一步建立一个参考图像库,首先在Project窗口中的ImageLib文件夹下点击鼠标右键并依次选择Create->XR->Reference Image Library新建一个参考图像库,并命名为RefImageLib,如下图所示。学新通

选择新建的RefImageLib参考图像库,在Inspector窗口中,点击“Add Image”添加参考图像,将参考图像拖到图像框中,如下图所示。

 学新通

 在上图中,每一个参考图像除了图片信息外都有若干属性,其具体含义见下表。学新通

 图像跟踪与启用:

  1.  
    public Text m_TogglePlaneDetectionText;
  2.  
    private ARTrackedImageManager mARTrackedImageManager;
  3.  
    void Awake()
  4.  
    {
  5.  
    mARTrackedImageManager = GetComponent<ARTrackedImageManager>();
  6.  
    }
  7.  
     
  8.  
    #region 启用与禁用图像跟踪
  9.  
    public void ToggleImageTracking()
  10.  
    {
  11.  
    mARTrackedImageManager.enabled = !mARTrackedImageManager.enabled;
  12.  
     
  13.  
    string planeDetectionMessage = "";
  14.  
    if (mARTrackedImageManager.enabled)
  15.  
    {
  16.  
    planeDetectionMessage = "禁用图像跟踪";
  17.  
    SetAllImagesActive(true);
  18.  
    }
  19.  
    else
  20.  
    {
  21.  
    planeDetectionMessage = "启用图像跟踪";
  22.  
    SetAllImagesActive(false);
  23.  
    }
  24.  
     
  25.  
    if (m_TogglePlaneDetectionText != null)
  26.  
    m_TogglePlaneDetectionText.text = planeDetectionMessage;
  27.  
    }
  28.  
     
  29.  
    void SetAllImagesActive(bool value)
  30.  
    {
  31.  
    foreach (var img in mARTrackedImageManager.trackables)
  32.  
    img.gameObject.SetActive(value);
  33.  
    }
  34.  
    #endregion
学新通

更多详细类容移步(感谢大大):ARFoundation之路-图像跟踪

发布手机端

发布并运行,需要如下操作;

1.打开手机开发者模式,具体方法详见百度,开启调试;

2.打开Unity的Project,并在菜单栏中选择:

Edit –> Project Settings –> Editors ,在Device项中选择 Any Android Device。

学新通

以上差不多就是我遇到的一些问题,欢迎大家交流讨论,记录学习日记:

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfgikg
系列文章
更多 icon
同类精品
更多 icon
继续加载