网易首页 > 网易号 > 正文 申请入驻

详解Unity AR Foundation:关于AR开发你必须要知道的一切都在这里

0
分享至

美国福布斯杂志将Unity AR Foundation列为2019年最佳AR项目之一。作为针对中国地区的本地化服务,在最新发布的Unity中国增强版中,AR Foundation加入了本地新成员:商汤的SenseAR XR Plugin,更加完善了Unity的XR解决方案。今天我们就为大家介绍一下如何通过Unity AR Foundation来创作多种增强现实体验内容。

什么是AR Foundation?

有一个风靡全球的IP大家一定都很熟悉,那就是《愤怒的小鸟》。以下这款AR应用就是运用此IP扩展的小游戏,它在手持设备和头戴式设备都推出了应用。

大家可以看到,虽然两个视频中的AR体验,一个是通过手机,一个是通过Magic Leap,但本质上AR体验其实是很相似的。如果你进行过AR开发,你一定知道在AR开发中经常会遇到的一个问题就是:同一个AR内容,却要为不同的平台分别进行各自的开发。这里就引出了ARFoundation能够解决的一个重要问题:哪怕只是一个手持设备的AR应用,也可能要用到ARCore来为安卓设备进行构建,用ARKit来为iOS设备进行构建,然后Magic Leap和HoloLens,也都有它们自己的SDK。可以想象,如果要用每个平台本身的原生开发环境去进行AR应用的开发将会是非常繁琐的一个过程。

AR Foundation的推出贯彻了Unity一直以来的一个使命——实现“构建一次,多平台部署”。有了AR Foundation, 开发者就不用单线地一条一条地去针对每一个平台来自己解决平台差异的问题。当然,由于各个平台直接的差异很大,能够实现“构建一次,多平台部署”并非易事,下面我们会具体分享Unity AR Foundation是怎么在架构层面上解决这个问题。

这些支持不同平台的插件都是以package的形式在Package Manager里,这样各个平台公开发布一些新功能的时候,Unity能够马上通过package的形式将新增功能提供给开发者,避免了像之前那样需要下载自定义版本的Unity编辑器的麻烦。通过这种方式,为多平台的各种新功能的支持增加了一定程度的灵活性,对开发者来说也非常方便。

此外值得一提的是,随着AR行业和生态的发展,越来越多新的平台和新的设备进入到市场中,很多AR开发者也在针对这些平台进行开发。我们希望AR Foundation不仅能够支持当下的主流平台,也希望能服务于这些AR新平台的内容开发者。因此Unity当初在设计AR Foundation的架构时就考虑到了这一点,让它能够非常方便地把新的平台和设备加到支持的平台里面,其中就包括我们近期加入的商汤SenseAR。SenseAR作为本土AR解决方案的领先者,在面对复杂多变的世界局势的时候,它的加入是非常有意义的。

AR Foundation的架构

简单来说,大家可以将AR Foundation理解为对SenseAR、ARCore、ARKit这样一些底层SDK的再次封装。在不同的平台、不同的SDK下会有一些不同的功能,既使是两个完全相同的功能,但是在不同的平台下我们也可能会被封装成不同的数据结构的定义。想要开发一个可以跨平台、跨机型的AR应用是一个很难做到的事情,而AR Foundation就是为此诞生的。

那么AR Foundation是如何解决这样一个问题?我们想让开发者通过AR Foundation把更多的精力放在应用的设计和创意之上,用一套逻辑的代码,就可以开发跨平台的AR应用。为了让AR Foundation兼容各类型的底层SDK,Unity做了大量的工作,搭建了一个开放型的架构体系的平台,这个架构就是Subsystems。Subsystems是一系列功能的逻辑分组,一个Subsystems就可以当做是一个AR Foundation功能部分的C#代码。目前支持的Subsystems包括大家经常使用的平面,射线检测,锚点设置等,同时也支持一些比较新的人体追踪、手势识别,还有脸部追踪之类的功能。

通过这些简单的命名,我们可以让可能对AR或者AR Foundation完全没有概念的开发者一目了然地知道这些功能是做什么的,然后每个Subsystems之间,它们之间是互相独立的。这样设计的好处就是让开发者在开发应用的时候,在功能的组合上更加自由、丰富,更加多样性。无论是使用哪些功能或者不使用哪些功能,或者一些平台不支持想要的功能,这些情况都不会影响到已有功能的正常使用。

举个例子,有一个具有响应功能的APP,这个响应既可以通过3D的物体识别来触发,也可以通过2D的图像识别触发,但是3D的效果会更好一些。那么如果有一个平台可以支持3D物体识别,就可以通过3D识别来实现想要的功能;如果另外一个平台不支持,也没关系,退而求其次,可以使用2D的图像识别功能来开发出相同的效果。

每个Subsystems包含了三个部分:

  • 第一部分是Unity提供给开发者,希望开发者使用的C#接口。

  • 第二部分是对原生底层SDK的一些调用和数据的回调。

  • 第三部分就是将前两个部分承接起来,把从原生底层拿到的数据分装成一个共享的数据,成为一个统一的数据结构,供上层的开发者调用。

下面这张图比较具象化地展现了这三部分结构。最上层的Developer Code是开发者自己写的应用代码,下一部分是AR Foundation Package,其中包含了一些Unity提供给开发者使用的API,通过Subsystem可以提供给开发者各个AR功能的使用接口和相关AR数据,可以通过GameObject来将这些数据可视化地表达出来。然后再下一层是ARSubsystems Package,这一层将每个Subsystem的功能抽象地定义出来,包括前面提到的统一数据结构和一些功能所需的方法,都是在这层所做的。通过AR Foundation就能调用这一层的内容,这样就可以不管是开发哪一个平台的APP,都可以做出来,只需去调用AR Subsystems Package所定义好的通用方法就可以。

最下面一层是Provider Package,这层就是集成比如SenseAR、ARCore、ARKit这一类的package。这一层所做的事情:一是把之前AR Subsystems Package中所定义的那些抽象方法做一个具体的实现,二是把对原生底层的SDK进行调用去获取想要的数据,第三就是把这些获取到的数据分装成ARSubsystems Package所定义过的通用数据,给上层的AR Foundation调用,然后再由用户来使用。

其中不可避免地需要处理到平台差异化的地方,这些差异化基本体现在两个方面:第一个方面就是这个平台是不是支持我当前想要用的这个功能?比如说像SenseAR的手势识别,还有ARKit的人体追踪,这些是它们自己平台独有的,别的平台暂时不支持这个功能。开发者在使用之前要先判断一下当前Runtime下的这个平台是否支持这些功能。第二个方面就是上述提过的,在各个平台上相同的功能,但是可能支持的程度不一样。举个例子,比如说像平面检测,一些平台可能支持横向和竖向的平面检测,也有一些平台可能只支持横向的平面检测。在设计APP的时候,需要针对功能的支持程度不同而做不同的处理。

对于第一个问题,可以通过目标功能提供的Manager,里面有个Subsystem这样的属性,开发者可以判断这个Subsystems是否为空,然后来确定这个平台是不是支持,为空的话就是不支持,不为空就是支持。

针对第二点,在功能的Manager里面也提供了一个叫做descriptor的这样一个参数。Plane Manager中会提供各种各样已经预设好的支持功能的参数,这个例子显示的就是它是否支持任意平面的检测,是否支持边缘点的检测,以及是否支持纵向平面及横向平面检测。通过Subsystems的descriptor,可以让开发者更好地做一些跨平台应用的开发和调整。

最后,想要提一下的是这套Subsystems的框架不仅仅运用在AR Foundation当中,很多Unity的其他功能也是基于类似的框架使用的,开发者可以通过学习封装出自己的Subsystems来进行使用。

AR Foundation支持的功能

随着近几年AR领域突飞猛进的发展,很多科技巨头都纷纷推出了自己的开发平台,比如苹果为iOS发布的ARKit,谷歌为安卓发布的ARCore,当时一下在AR界掀起了巨浪。Unity的目标是“构建一次,多平台部署”,我们也在不断推出新的版本以集成更多AR开发平台。对于Unity来说,技术持续演进,从不停歇。

  • 2018年10月,Unity 发布 AR Foundation 1.0,支持基本AR功能,包括平面追踪、特征点云检测、参考点/锚点、设备追踪、光照估计、射线碰撞。

  • 2019年5月,AR Foundation 2.1 支持图像追踪、物体追踪、面部追踪、环境探针。

  • 2019年6月,AR Foundation 3.0 支持 ARKit 3.0,新增动作捕捉、人物遮挡、多人协作等功能。

  • 2019年9月[MOU1] ,AR Foundation 支持 Magic Leap 以及 HoloLens 1 和 2 ,也增加了一些帮助XR开发加速迭代的工具,如:XR Interaction Toolkit,Unity as a Library;

  • 2019年11月,SenseAR正式集成进了Unity中国增强版2018.4.11C版本中。

除了以跨平台方式展示AR功能的目标外,AR Foundation也做了很多优化和便利方面的工作:

  • 高性能背景渲染:针对移动平台手持设备的(头戴设备不适用)的AR应用,需要做的第一件事情就是要将相机图像渲染为AR背景,创造一种AR的错觉。Unity利用的是与我们支持VR产品相同的高度优化的立体渲染(Stereo Rendering)。

  • AR内容缩放:也就是对在真实世界里要放的虚拟对象的缩放。经常使用Asset Store的开发者可能注意到大多数虚拟内容都是按人的规模缩放以供在FPS游戏中使用的。但现实情况是,AR内容的大小通常受限于可用的物理空间的大小,例如茶几上或空地板上,AR Foundation可以负责解决这些缩放问题。

  • 优化的设备配置:这也是Unity一直的目标,希望开发者可以专注于应用体验的开发,而不用花大量时间在研究各个平台有什么不同。我们会解决这些设备的配置问题,然后在此之上进行优化,帮助大家解决例如电池寿命等性能方面的一些问题,让开发者能够更加专注于应用体验最重要的设计本身。

今后Unity将会继续更新AR Foundation,目标是更多功能匹配、缩短迭代时间以及快速内容创作。因为即时的AR体验要求响应速度非常快,以后AR Foundation也会更好地兼容DOTS,以更轻松地实现高性能的AR体验。

更好更快地支持本地开发者

在去年9月发布的中国增强版里,Unity加入了一些专门为中国开发者量身打造的性能测试工具、更接地气的远程构建工具、安全加密工具,以及Unity中国企业支持团队携手合作伙伴为本地开发者社区开发的各种新功能。想要了解更多关于中国增强版内容的小伙伴们可以戳B站视频:

https://www.bilibili.com/video/av77755584

https://www.bilibili.com/video/av88982340

https://www.bilibili.com/video/av88236133

简单来说,Unity中国增强版= Unity全球版(LTS) + 中国地区额外的增强功能通过使用Unity中国增强版,开发者不仅可以获得Unity全球版中的所有功能和更新,同时也可以得到全球版中不存在的为本地开发者而研发和优化过的新功能。而且,将中国增强版扩展到LTS以外的其他版本,以更快迭代速度以期与全球各版本同步的计划已经排上日程,意味着在不久的将来,大家可以在Unity 2019、Unity 2020版本里也使用到中国增强版的各个增强功能)

在Unity中国增强版2018.4.11C版本中,我们首次加入了SenseAR XR Plugin Package,开发者可以直接通过中国增强版编辑器的PackageManager下载,配合AR Foundation,实现了对商汤科技SenseAR的支持。这也是Unity AR Foundation支持的第一个中国本土AR平台。

未来,Unity将会不断加强对于中国本地开发者社区的支持,陆续增加更多中国增强版的功能,为本土市场提供更好更快的服务。我们也非常愿意倾听来自社区的建议,如果你有任何针对各种功能的意见和建议,欢迎在微信文章下方留言告诉我们或者加入Unity Connect社区与我们联系。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
反转!宝妈吐槽扑空韩红义诊引热议:全天看病变半天,网友群嘲,真相大白

反转!宝妈吐槽扑空韩红义诊引热议:全天看病变半天,网友群嘲,真相大白

李晚书
2026-07-09 19:52:23
中国性需求报告显示:性欲高的男女占比分别为35%和30%!

中国性需求报告显示:性欲高的男女占比分别为35%和30%!

黯泉
2026-07-09 12:23:09
争议?阿根廷主裁2次叫停姆巴佩罚点球 基恩:不公!让球员等3分钟

争议?阿根廷主裁2次叫停姆巴佩罚点球 基恩:不公!让球员等3分钟

风过乡
2026-07-10 05:20:31
辱骂游客的北京导游彻底社死!“底裤”被扒,正脸流出,评论炸了

辱骂游客的北京导游彻底社死!“底裤”被扒,正脸流出,评论炸了

生命之泉的奥秘
2026-07-09 23:28:03
美国荒野里长满了“巨型螺丝”,科学家研究85年才知道是什么,真凶居然是它

美国荒野里长满了“巨型螺丝”,科学家研究85年才知道是什么,真凶居然是它

万物杂志
2026-07-09 06:04:25
公布了!中国男篮最新大名单!1米96冠军后卫加盟

公布了!中国男篮最新大名单!1米96冠军后卫加盟

篮球实战宝典
2026-07-09 22:37:17
世界杯冠军已无悬念,99%概率在两强间产生

世界杯冠军已无悬念,99%概率在两强间产生

補懂事的孩紙
2026-07-08 03:17:55
意有所指?31岁B费出局后首次更新社媒:太沮丧 对队友有更高期望

意有所指?31岁B费出局后首次更新社媒:太沮丧 对队友有更高期望

风过乡
2026-07-10 04:32:33
北京导游辱骂游客后续,拘留只是开始 还要面临3重处罚 饭碗没了

北京导游辱骂游客后续,拘留只是开始 还要面临3重处罚 饭碗没了

小鋭有话说
2026-07-09 09:54:35
著名演员梁烈唯偷了一束Labubu限量玩偶花束被TVB和邵氏同时除名

著名演员梁烈唯偷了一束Labubu限量玩偶花束被TVB和邵氏同时除名

西楼知趣杂谈
2026-07-10 05:57:17
正式官宣!NBA休赛期第一颗核弹落地,米切尔公开向詹姆斯摊牌

正式官宣!NBA休赛期第一颗核弹落地,米切尔公开向詹姆斯摊牌

林子说事
2026-07-09 06:58:36
股价从54.6元跌至0.69元,昔日大牛股造假终翻车

股价从54.6元跌至0.69元,昔日大牛股造假终翻车

21世纪经济报道
2026-07-09 20:42:34
郭涵煜鏖战2小时掀翻世界第一,创造中国网球新历史

郭涵煜鏖战2小时掀翻世界第一,创造中国网球新历史

童叔不飙车
2026-07-10 00:59:57
正式卸任!手握CBA11次冠军,官宣新职务,杜锋开启人生新篇章

正式卸任!手握CBA11次冠军,官宣新职务,杜锋开启人生新篇章

大西体育
2026-07-09 15:55:47
晋江鞋厂火灾,目击者发声

晋江鞋厂火灾,目击者发声

中国新闻周刊
2026-07-09 20:15:08
我们问了12个大模型谁进四强,11个交出了同一张答卷

我们问了12个大模型谁进四强,11个交出了同一张答卷

新浪财经
2026-07-09 10:27:16
莫言:当我看到一个女人手上没有手镯、手链,脖子上没有项链,我能确定她在这3个方面是非常“特别”的女人

莫言:当我看到一个女人手上没有手镯、手链,脖子上没有项链,我能确定她在这3个方面是非常“特别”的女人

背包旅行
2026-07-09 11:54:26
小米正式官宣:7月14日,正式亮相

小米正式官宣:7月14日,正式亮相

科技堡垒
2026-07-09 00:50:39
“太夸张了!”密密麻麻全是人!知名品牌深圳首店开业,网友:系统都崩溃了

“太夸张了!”密密麻麻全是人!知名品牌深圳首店开业,网友:系统都崩溃了

深圳晚报
2026-07-09 17:48:22
夺冠热门轰然倒下,一短板成致命伤,球迷:再一再二无再三,上限4强

夺冠热门轰然倒下,一短板成致命伤,球迷:再一再二无再三,上限4强

我就是一个说球的
2026-07-09 14:59:47
2026-07-10 08:04:49
Unity incentive-icons
Unity
Unity中国官方帐户
2485文章数 6732关注度
往期回顾 全部

科技要闻

Meta发布Muse spark 1.1,跑分接近Opus4.8

头条要闻

特朗普松口 称将授权乌克兰自行生产"爱国者"防空系统

头条要闻

特朗普松口 称将授权乌克兰自行生产"爱国者"防空系统

体育要闻

信哈兰德吃小孩,还是信非洲足球会魔法?

娱乐要闻

陈翔发文“苍天饶过谁”登热搜,旧事再引关注

财经要闻

中国房地产十年

汽车要闻

悦己更悦人 阿维塔07L加长了更加上了豪华

态度原创

教育
本地
亲子
数码
军事航空

教育要闻

我真的很讨厌这句话!!!非常非常讨厌!!!

本地新闻

重庆人有自己的避暑桃花源 | 夏天就去「酉」风的地方!

亲子要闻

中医分享别不舍得给娃开空调!但要把握温度,建议适宜温度是27-28度

数码要闻

Marshall发布全新ACTON IV与STANMORE IV:2499元起

军事要闻

四川舰甲板全貌完整亮相 专家:离正式交付不远

无障碍浏览 进入关怀版