自己上手开发了两三个AR APP之后,用Unity进行AR/VR APP开发算是入了门。反思一下自己使用过的资料。
技术书籍
一开始是找比较新的技术书籍看,因为直接看文档有些难度。
对于有Unity基础,想上手开发AR APP的开发者,我强烈推荐这本书:《Augmented Reality with Unity AR Foundation》,作者Jonathan Linowes。作者说得特别有条理和详细,分享了自己设计和开发AR APP的经验,提供了他开发AR APP时使用的项目架构。而且,这本书于2021年8月出版,很新;通常而言,对于AR、VR类型的技术书籍,最近出版的是一个很重要的挑选条件,因为技术迭代得太快了。这本书还配有源码: https://github.com/PacktPublishing/Augmented-Reality-with-Unity-AR-Foundation
不过就是有点小贵。如果是学生的话,可以看看学校图书馆有没有买Oreilly数据库的服务,在Oreilly上可以找到这本书。如果没有的话,想看就只能自己买了。
另外一本是**《AR开发权威指南-ARFoundation》**,作者汪祥春老师。本书也提供源码,还有QQ群,作者会在群里答疑。
对于VR开发的技术书籍,我暂时没有找到很好的。尽管Jonathan Linowes也有撰写VR开发的书籍,但是个人感觉写得没有AR那本书好。也可能是年代比较久的原因,很多需要用的包或者函数都找不到了。
官方教程和文档
入门之后,要实现更高级的功能,就需要开始看文档了。而且,书籍很快就会过时,如果要应用最新的技术,也需要看文档。
我一开始是将Unity Manual快速地过了一遍,有了个大概的印象,然后会进行实操。但是,实操的时候,脑子迷迷糊糊的。例如,Unity和ARCore等是什么关系? 为什么我要进行这样那样的配置?按照文档上的设置,我的Oculus开发环境还是没有设置好呀?我还找到了关于ARCore、Oculus VR的文档,我该怎么去使用它们呢?
于是我去过了一遍Oculus提供的如何在Unity中使用Oculus的文档。
我现在的理解是,有不同的方法可以开发AR/VR APP,包括:
- 使用各种厂家提供的原生SDK(例如ARCore、ARKit、Oculus XR、Windows XR)等进行开发。好处是能够使用到厂家提供的最新的功能;坏处是不能跨平台部署,以及可能需要掌握更为底层的知识。
- 使用Unreal提供的XR能力。
- 使用Unity提供的XR能力。从下面的图可以看出,Unity其实并不提供底层的实现,而是基于各种厂商提供的XR plugin,在不同的XR plugin中进行封装集成,提供了Unity XR SDK、XR Subsystem、ARFoundation、XR Interaction Toolkit等。因此,可以做到一次开发,多平台部署。
所以在看Unity提供的文档的时候,其实看的是ARFoundation、XR Interaction Toolkit等较high-level的实现。有些东西不明白,可以再从各大厂家提供的文档看看。
Unity XR文档
Oculus with Unity (Oculus还提供了Native、Unreal、WebXR的文档)
ARCore with Unity (ARCore也提供了Android、Unreal的文档)
ARkit (ARKit官方好像没有提供如何在Unity中使用,所以只能看Unity提供的文档)
视频
实验室的开发大佬建议直接去看教学视频,清晰直观。不过我还没有太试过。
References
[1] https://docs.unity3d.com/Manual/XRPluginArchitecture.html