前段时间通过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配置流程:

  1. Unity主窗口Windows→Package Manager安装AR Foundation与ARKit XR Plugins(它们版本得相同);

  2. Edit→Project Setting→XR Plugins-in Management→Plug-in Providers→勾选ARKit;

  3. 我们设置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的使用的更多相关文章

  1. Unity AR Foundation 和 CoreML: 实现手部的检测和追踪

    0x00 前言 Unity的AR Foundation通过上层抽象,对ARKit和ARCore这些底层接口进行了封装,从而实现了AR项目的跨平台开发能力. 而苹果的CoreML是一个可以用来将机器学习 ...

  2. i3D的一篇Unity教程中的笔记

    原地址:http://blog.sina.com.cn/s/blog_72b936d80100wwej.html 以下是i3D的一篇Unity教程中的笔记. i3D的这篇教程是[i3D.Next-Ge ...

  3. [译]如何在Unity编辑器中添加你自己的工具

    在这篇教程中你会学习如何扩展你的Unity3D编辑器,以便在你的项目中更好的使用它.你将会学习如何绘制你自己的gizmo,用代码来实现创建和删除物体,创建编辑器窗口,使用组件,并且允许用户撤销他们所作 ...

  4. 关于Unity项目中创建项目遇到的一些问题

    1.Unity调用Android的方法默认不是在UI线程执行,所以在Android上写一些页面的重绘的方法,让Unity去调用时,注意要在Android中添加对应的runOnUiThread才可以: ...

  5. 【Unity优化】如何实现Unity编辑器中的协程

    Unity编辑器中何时需要协程 当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理.比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种 ...

  6. 在Unity 3D中加入Image图片

    在Unity 3D中加入Image图片,我在刚开始是加不进去的,为什么呢?因为没有图片,图如下: 原因就是我们没有把图片设置为Script,图片的格式还是默认的那个,这只能作为贴图使用.我们将图片进行 ...

  7. Unity 3D中的阴影设置

    在Unity 3D中,经常需要用到光照阴影,即Directional Light的Shadow,Shadow分为Hard Shadow和Soft Shadow.区别是Soft Shadow的阴影边缘比 ...

  8. Unity 3D中不得不说的yield协程与消息传递

    1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...

  9. MVVM框架在unity开发中的使用

    1.什么是MVVM 借用一下百度百科上对MVVM的介绍,MVVM是Model-View-ViewModel的简写,它本质上就是MVC 的改进版.MVVM 就是将其中的View 的状态和行为抽象化,让我 ...

随机推荐

  1. Fruity Parametric EQ 2使用说明(一)——FL Studio插件教程

    FL Studio插件教程-Fruity Parametric EQ 2使用说明(一) Fruity Parametric EQ 2均衡器,是一款我们在FL Studio制作音乐时经常会用到的插件,它 ...

  2. IDM下载器添加支持自动下载的文件类型

    不知道各位读者老爷有没有试过IDM下载器的自动下载功能,对于经常需要下载素材资源的朋友来说,一个个的选择图片或者其他什么素材来下载也是够烦的,IDM的自动下载功能可谓是十分好用,而且自动下载+批量下载 ...

  3. jQuery 第九章 工具方法之插件扩展 $.extend() 和 $.fn.extend()

    $.extend() $.fn.extend() -------------------------------------------------- $.extend() 插件扩展(工具方法) jq ...

  4. web自动化测试难点 滚动条操作、日期框处理、上传文件

    如何把页面滑到最低部? 一般来说,做web自动化测试时,不需要单独写代码,把页面滑到可见,因为click操作,只要是元素存在并且加载出来了,就可以点击到,无需另外写滑动元素的代码. 如果特殊情况需要滑 ...

  5. redlock分布式锁真的安全吗

    此文是对http://zhangtielei.com/posts/blog-redlock-reasoning-part2.html文章的个人归纳,如有问题请联系删除 什么是redlock redlo ...

  6. P5851 [USACO19DEC]Greedy Pie Eaters P

    如果只考虑选哪些奶牛吃派和奶牛吃派的顺序,就会陷入僵局,那么我们可以考虑派的情况. 套路地令 \(f_{i,j}\) 表示 \(i\sim j\) 这一段派,能满足一些奶牛,它们的最大可能体重. \[ ...

  7. 在Spring data中使用r2dbc

    目录 简介 依赖关系 数据库连接配置 数据库初始化 DAO操作 Service操作和Transaction controller 测试 简介 上篇文章我们讲到了怎么在Spring webFlux中使用 ...

  8. std::unique_ptr使用incomplete type的报错分析和解决

    Pimpl(Pointer to implementation)很多同学都不陌生,但是从原始指针升级到C++11的独占指针std::unique_ptr时,会遇到一个incomplete type的报 ...

  9. Intel s2600系列做虚拟化需要注意的item

    Intel s2600cw\cp主板做虚拟化BIOS需要设置以下选项,附件为截图供参考. -->vt,cpu虚拟化,默认关闭,需要确保开启 -->ht,cpu超线程,默认开启,需要确保开启 ...

  10. 使用Git,10件你可能需要“反悔”的事

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎S ...