如何在Unity中使用AR Foundation和ARCore创建一个项目并编译到Android 11手机设备中

2023-11-19

最近又开始学如何使用Unity进行AR开发,因为Unity开发的AR Foundation在各种设备(例如Android、iOS、HoloLens)的原生AR SDK(例如ARCore、ARKit、Windows 10 SDK)上进行了封装,允许一次开发、多平台分发,十分方便。但是,虽然写代码方便了,写代码之前的开发环境配置和写完代码之后的编译部署却因平台而易。所以,有必要记录一下,方便日后查阅。本文参考了汪祥春老师的《AR开发权威指南:基于AR Foundation》。

本文介绍以下内容:

  1. 为安卓手机开发AR应用,如何在Unity中开发环境配置?
  2. 如何连接USB的方式连接安卓手机和电脑并进行开发者设置?
  3. 如何在Unity中编译AR应用到安卓手机?

我的环境说明:

使用MacBook Pro 进行开发,版本为MacOS Big Sur 11.6
Unity 版本为: 2019.4.32f1
App部署到小米10, 其安卓版本为Android 11

为Android AR APP配置Unity开发环境

Step 1: 新建一个3D项目
Step 2: 导入AR Foundation和ARCore XR Plugin插件。方式为:单击Unity菜单栏Window -> Package Manager,分别找到AR Foundation和ARCore XR Plugin后,点击"Install" 安装。
Step 3: 点击Unity菜单栏 File -> Build Settings…进入到设置窗口, 点击“Platform”下的“Android”选项,然后点击“Switch Platform”切换到Android平台。

在这里插入图片描述
Step 4: 点击上图左下角的 “Player Settings”, 然后选择左侧的 “Player”,然后点击右侧的Android小图标。可以看到有各种各样的设置选项,比如设置APP在手机上的图标 (Icon)等。
在这里插入图片描述
我更改了以下设置:

  1. Other Settings->Rendering->Graphics APIs, 删掉 Vulkan.
    在这里插入图片描述

  2. Other Settings->Identification->Minimum API Level 设置为 Android 7.0 ‘Nougat’ (API level 24) 或以上,因为ARCore支持的最低版本为24。
    在这里插入图片描述3. 不要勾选 XR Settings中的 ARCore Support
    在这里插入图片描述
    Step 5:由于ARCore 要求 Gradle (不知道这是什么东西?没关系,目前不需要知道) 的版本最低为5.6.4,但是Unity 2019.4.32f1安装时自带的Gradle是5.1.1,所以需要进行额外的设置。官网给出了详细的指导,请依据这个网页的1-3步进行设置。其中,应该可以把下载下来的Gradle随便找个地方放,我放在了和原来Gradle一个目录下。

到这里之后就完成开发环境的设置啦。接下来就可以在Unity中开始编程了。编程完成之后,就可以将应用编译到手机上。下面介绍如何将应用编译到手机上,分为两步:连接手机和进行编译。

连接安卓手机

以小米10为例,首先需要将手机设置为开发者模式。方式为:

  1. 设置 -> 我的设备 -> 全部参数 -> MIUI 版本,连续点击MIUI版本几次,就可以进入开发者模式
  2. 设置 -> 更多设置 -> 开发者选项 (如果不进行上一步,则看不到开发者选项)
  3. 进行以下设置:
    1)打开 USB 调试
    2)打开 USB 安装 (这样电脑可以直接将编译好的应用安装到手机上)

然后通过USB连接手机和电脑就可以了。

在Unity中编译

点击Unity菜单栏 File -> Build Settings…,点击下图标红的地方,就会开始编译,编译后的apk会安装在手机上。
如果编译不成功,在Unity Console上看报错信息,多是开发环境没有设置好,再上网查一下解决。
在这里插入图片描述

搭建基本AR项目结构

配置好之后,就可以开始编程了,不过,还需要通过Hierarchy窗口中添加XR-> AR Session 和 XR-> AR Session Origin。关于这两个组件的说明可参见AR Foundation的官方文档

另外还需要删除Hierarchy窗口下的Main camera,因为AR Session Origin中有一个AR camera。

参考资料

  1. 汪祥春. AR开发权威指南:基于AR Foundation
  2. Build for Android 11 with Unity. https://developers.google.com/ar/develop/unity/android-11-build
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Unity中使用AR Foundation和ARCore创建一个项目并编译到Android 11手机设备中 的相关文章

随机推荐

  • JQuery使用

    JQuery 框架 注意事项 在导入JQUREY外部文件的时候不可以使用自闭合标签 无效化导入且不报错 不可使用此方式加载 jQuery框架特点 免费开源 轻量级框架 占用资源少 运行速度快 宗旨 write less do more jQ
  • python下载安装教程(Python 3.10版本)

    目录 一 Python下载 二 Python安装 三 检查Python是否安装成功 今天换了新的电脑 需要重新安装python和PyCharm 就简单的写个教程吧 一 Python下载 1 进入Python官网 官网地址 https www
  • 使用http携带token请求第三方接口 并封装参数以post方式请求

    首先准备条件 1 四个jar包 fastjson 1 2 3 jar commons io 2 4 jar commons httpclient 3 1 jar httpcore 4 3 jar slf4j api 1 7 7 jar 这个
  • 范围for语句

    C 新标准提供的范围for语句 这种语句遍历给定序列中个元素并对序列中每一个值执行某种操作 其语法形式是 for declaration expression statement 其中 expression 部分是一个对象 用于表示一个序列
  • tp5 生成随机数

    控制器调用 public function GetRanStr if request gt isPost 生成6位数随机数 return GetRandStr 6 公共方法 生成随机数 param len return string fun
  • 常用与业务密切相关的prompt

    可以在 Bard Bing Claude 2 ChatGPT和 Llama 2 上使用 定义您的业务目的和愿景 提示 我正在 插入行业 创业 我的重点是定义与我的受众产生共鸣的明确目标和愿景 你能指导我制定有意义的愿景声明吗 研究和分析您的
  • android通过JNI用C/C++创建本地文件

    通过jni在本地创建文件 1 在android studio创建基本的jni工程 并且在APP界面成功显示 Hello from C 不会的可以看android studio使用jni 2 在native lib cpp文件中创建文件 为了
  • eclipse导入项目后,项目报红叉的解决方法

    导入项目后 项目报红叉的解决方法 导入别人的项目后 一般都会报错 我之前尝试build path 发现并没有问题 后来发现 点击项目右键 properties 把服务加上Apply and Close就可以了
  • Spring(三):JavaBean的生命周期

    JavaBean的生命周期 一 基本概念 bean 就是由IOC 容器初始化 装配及管理的对象 Spring中的bean默认都是单例的 那么单例Bean在多线程程序下如何保证线程安全呢 Spring的单例是基于BeanFactory也就是S
  • 音视频学习笔记(雷神)—技术解析

    音视频技术解析 封装技术 视频压缩编解码 音频压缩编解码 这是技术层 流媒体传输协议 这是网络层 视频播放器解析 解协议 从视频播放器的角度做解析 拿到传输而来的视频数据后 首先要解协议 传输协议 自然的本地视频经过硬盘传输数据自然没有解协
  • 关于UI适配的文档

    第一部分 原理 1 根据当前屏幕尺寸与开发预设屏幕尺寸尺寸得出以下参数 1 XRatio 当前屏幕尺寸与开发尺寸的X轴比例 2 YRtaio 当前屏幕尺寸与开发尺寸的Y轴比例 3minRatio XRatio与YRtaio中的较小值 2 之
  • 求1到n的所有质数(素数)

    1 一般方法 定义一个空列表 双层循环实现 时间复杂高计算慢 时间复杂度为 O n 2 mathrm O left mathrm n 2
  • 《这些话好帅,经典得让人心痛!》

    http bookmark hexun com shuhe2008 detail aspx bid 6306685 type rss 1 对自己好点 因为一辈子不长 对身边的人好点 因为下辈子不一定能够遇见 2 对不起是一种真诚 没关系是一
  • 线性回归和逻辑回归的区别_【基础】线性回归和逻辑回归

    回归和分类 回归和分类是机器学习可以解决两大主要问题 从预测值的类型上来区分 连续变量的预测称为回归 离散变量的预测称为分类 例如 预测房价的价格是一个回归任务 预测一张图片是猫还是狗的图片是分类任务 线性回归 在一维特征空间 线性回归是通
  • C基础day8(2023.7.10)

    一 Xmind整理 二 课上练习 练习1 基本类型参数 include
  • Ubuntu/Win10双系统安全删除Ubuntu的方法

    为什么要删除Ubuntu 现在 许多筒子喜欢在电脑上安装双系统 Windows Linux Linux系统中最受个人用户用户青睐的当属Ubuntu了 我们常常在Ubuntu上写程序 调代码 做开发 然而 有些时候我们因为各种各样的原因 不得
  • vscode插件开发踩坑

    vscode插件开发踩坑 q npm总是提示连接错误并且切换源也没用 a 卸载重装 卸载干净 usr 下的lib和bin有关node moudle的全删掉 q npm使用sudo时提示错误 a 首先npm不能和sudo一起用 然后因为npm
  • iOS 17 Simulator Failed with HTTP status 400:bad request

    升级 xcode 15 要 ios17 的 sdk 才能运行 但是更新这个 sdk 400 错误了 解决方案 直接去官网下载开发者后台下载dmg文件 使用命令行快速安装即可 https developer apple com documen
  • OCaml简介

    OCaml简介 函数式编程 产生于 优点 ref https zhuanlan zhihu com p 591818090 函数式编程 传统的编程语言 是面向过程 面向对象的 产生于 20世纪80 90年代 产生于法国巴黎高等师范学院 起源
  • 如何在Unity中使用AR Foundation和ARCore创建一个项目并编译到Android 11手机设备中

    最近又开始学如何使用Unity进行AR开发 因为Unity开发的AR Foundation在各种设备 例如Android iOS HoloLens 的原生AR SDK 例如ARCore ARKit Windows 10 SDK 上进行了封装