【Unity】Unity中AR Foundation的使用
前段时间通过Unity 3d打包测试对比ARCore与ARKit环境探针的效果的过程中,在Google AR Core官网下载到了ARCore for Unity SDK,但是在苹果官网却没有找到ARKit for Unity SDK。于是我想在Unity AssetStore也许能找到,结果也是没有,经过多方查询才知道,原来Unity AssetStore早在2018年就下线了ARkit,Unity自己构建了一个AR开发平台,这就是AR Foundation。
什么是AR Foundation?

在AR Foundation诞生之前,如果我们需要开发一个多平台的AR应用,会使用 ARCore XR Plugin 开发一个Android设备版本,使用 ARKit XR Plugin 开发一个iOS设备版本。由于底层API的不同,这样我们就需要同时维护多份代码,这无疑增加了我们工作量和开发成本。因此Unity利用其跨平台的优势,开发了一个与平台无关的AR开发工具包,Unity将这个AR开发工具包命名为“AR Foundation”。
AR Foundation本身并没有实现任何AR功能,而是定义了一个多平台API。AR Foundation这个平台架构于各平台AR SDK之上,对各个平台的AR SDK进行了二次封装,其目的就是利用Unity的跨平台能力构建一种与平台无关的AR开发环境。目前AR Foundation包含的AR SDK有ARCore、ARKit、Magic Leap、Hololens,相信在后续AR Foundation会兼容更多的主流AR SDK。在进行开发时,用户可根据自己项目需求选择合适的底层SDK版本。

AR Foundation与ARCore、ARKit都正处于快速发展中,ARCore基本保持每两个月进行一次更新频率,不过AR Foundation功能的实现要比底层的原生API稍晚一些。下表展示了AR Foundation中ARCore、ARKit、Magic Leap、Hololens功能对比:

利用AR foundation打包Android与ios的流程:
下面来讲一下利用AR Foundation来打包到Android与ios的基本流程:

我用的是Unity版本是2019.4.14,通过Unity Hub下载把Android与ios打包必须的一些环境都给装上了,后续就不用单独就配置了。
Android配置流程:
1.Unity主窗口Windows->PackageManager安装AR Foundation与ARCore XR Plugins(它们版本得相同);
2.Edit→ProjectSetting→XR Plugins-in Management→Plug-in Providers→勾选ARCore;
3.Edit→ProjectSetting→Player→othersetting,在Other Setting选项卡中取消勾选 Multithreaded Rendering(多线程渲染),最后还要删除Vulkan,因为Android不支持Vulkan;
4.设置与ARCore兼容的Android最低版本,找到“Minimun API level”选项,点击其下拉菜单,选择“Android7.0‘nougat’(API level 24)”或以上。

iOS配置流程:
Unity主窗口Windows→Package Manager安装AR Foundation与ARKit XR Plugins(它们版本得相同);
Edit→Project Setting→XR Plugins-in Management→Plug-in Providers→勾选ARKit;
我们设置Target SDK为Device SDK。设置最低iOS系统版本为11.0,因为支持ARKit的最低iOS版本是11.0。最后设置处理器架构为ARM64。

完成以上基础设置,就可以场景中添加AR基础组件,在Hierarchy窗口中的空白处点击鼠标右键,在弹出的级联菜单中依次选择XR→AR Session和XR→AR Session Origin,新建这两个AR基础组件。内容可根据自己需求来增加,不清楚如何开发的朋友可以先在GitHub上下载相关示例,附链接:github.com/Unity-Technologies/arfoundation-samples
ARCore打包到安卓时,会报一个Gradle版本不对的错误,具体解决方法可参照: developers.google.com/ar/develop/unity/android-11-build
ARKit打包出来是一个Xcode工程,我们需要在Xcode中打包发布到真机,这个环节是要用到苹果电脑,而且对系统版本和Xcode版本是有要求的,详细的操作步骤可参照: www.doulipark.com/2019/1122.html
通过AR Foundation开发后,如果想要让不同设备的用户直接通过URL访问体验,可以将应用上传到3DCAT实时渲染云平台,用户体验AR应用不用下载跟安装APP,任何时间地点,任何设备都可以直接访问,在线体验3D应用。3DCAT实时渲染云平台是一个三维应用的托管运行平台,在云端提供强大的图形实时渲染计算服务,平台配备弹性GPU资源集群,支持自动负载均衡和伸缩扩容,支持海量用户同时安全访问应用。
3DCAT是集实时渲染、实时3D可视化、像素流送、虚拟仿真等相关技术服务于一身的实时渲染云平台。利用云端的海量GPU算力处理繁重的图像渲染计算并串流同步输出到终端设备,从而实现终端设备的轻量化,让高质量三维图形应用变得无处不在。
了解更多实时渲染相关资讯,体验目前3DCAT实时渲染平台在一些行业已经应用的demo,欢迎访问3DCAT实时渲染云平台:https://www.3dcat.live
以上就是3DCAT实时渲染云平台整理发布的《Unity中AR Foundation的使用》一文。如需转载,请注明出处及链接:https://www.3dcat.live/news/unity-ar-foundation
了解更多虚拟仿真相关资讯,请关注3DCAT实时渲染云平台:https://www.3dcat.live
【Unity】Unity中AR Foundation的使用的更多相关文章
- Unity AR Foundation 和 CoreML: 实现手部的检测和追踪
0x00 前言 Unity的AR Foundation通过上层抽象,对ARKit和ARCore这些底层接口进行了封装,从而实现了AR项目的跨平台开发能力. 而苹果的CoreML是一个可以用来将机器学习 ...
- i3D的一篇Unity教程中的笔记
原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...
- [译]如何在Unity编辑器中添加你自己的工具
在这篇教程中你会学习如何扩展你的Unity3D编辑器,以便在你的项目中更好的使用它.你将会学习如何绘制你自己的gizmo,用代码来实现创建和删除物体,创建编辑器窗口,使用组件,并且允许用户撤销他们所作 ...
- 关于Unity项目中创建项目遇到的一些问题
1.Unity调用Android的方法默认不是在UI线程执行,所以在Android上写一些页面的重绘的方法,让Unity去调用时,注意要在Android中添加对应的runOnUiThread才可以: ...
- 【Unity优化】如何实现Unity编辑器中的协程
Unity编辑器中何时需要协程 当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理.比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种 ...
- 在Unity 3D中加入Image图片
在Unity 3D中加入Image图片,我在刚开始是加不进去的,为什么呢?因为没有图片,图如下: 原因就是我们没有把图片设置为Script,图片的格式还是默认的那个,这只能作为贴图使用.我们将图片进行 ...
- Unity 3D中的阴影设置
在Unity 3D中,经常需要用到光照阴影,即Directional Light的Shadow,Shadow分为Hard Shadow和Soft Shadow.区别是Soft Shadow的阴影边缘比 ...
- Unity 3D中不得不说的yield协程与消息传递
1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...
- MVVM框架在unity开发中的使用
1.什么是MVVM 借用一下百度百科上对MVVM的介绍,MVVM是Model-View-ViewModel的简写,它本质上就是MVC 的改进版.MVVM 就是将其中的View 的状态和行为抽象化,让我 ...
随机推荐
- 软链接mongo
ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo
- Word 2013中如何直接调用MathType
相信有很多用户已经发现在使用Word 2013编辑文档时MathType无法直接调用,但是点击文档中的公式时能够跳出MathType公式编辑窗口,那么这是怎么回事呢?其实,这一问题也不是没有办法解决的 ...
- 教你用Vegas Pro制作视频的遮罩转场特效
很多小伙伴在接触了Vegas之后,都想利用Vegas制作出各种酷炫的特效.小编也是一样. 今天,小编就和大家分享一下,小编近期学会的遮罩转场特效. 首先想要制作遮罩转场效果,需要的素材有:至少两个图片 ...
- 【CF375D】Trees and Queries——树上启发式合并
(题面不是来自Luogu) 题目描述 有一个大小为n且以1为根的树,树上每个点都有对应的颜色ci.现给出m次询问v, k,问以v为根的子树中有多少种颜色至少出现了k次. 输入格式 第一行两个数n,m表 ...
- windows服务器下tomcat 8.0 配置远程调试
在tomcat的bin目录下, 添加debug.txt文件, 然后输入: set JPDA_ADDRESS=9901set JPDA_TRANSPORT=dt_socketset CATALINA_O ...
- 利用canvas阴影功能与双线技巧绘制轨道交通大屏项目效果
利用canvas阴影功能与双线技巧绘制轨道交通大屏项目效果 前言 近日公司接到一个轨道系统的需求,需要将地铁线路及列车实时位置展示在大屏上.既然是大屏项目,那视觉效果当然是第一重点,咱们可以先来看看项 ...
- 第2.2节 Python的语句
上节已经介绍了极简的Python代码编写,已经用到了赋值语句,本节对Python的程序语句进行介绍. 一. 常用命令 在介绍Python语句之前,先介绍一下几个有用的Python命令. dir(模块名 ...
- PyQt(Python+Qt)学习随笔:复选框状态枚举类Qt.CheckState取值及含义
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 老猿Python,跟老猿学Python! 老猿Python博文目录 专栏:使用PyQt开发图形界面P ...
- 第14.2节 HTML知识简介
一. HTML语言 HTML 指的是超文本标记语言 (Hyper Text Markup Language),它不是一种编程语言,而是一种使用一套标记标签(markup tag)来标记元素作用的标记语 ...
- PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dragDropOverwriteMode属性不能覆盖写的问题
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在<PyQt(Python+Qt)学习随笔:视图中类QAbstractItemView的dra ...