开发混合现实应用,选Quest和Pico哪个更容易?实践得出真答案
苹果的MR基于彩色透视技术,可惜目前大家都拿不到真机体验。如果当下想要体验类似的效果,并尝试开发混合现实应用,可以选择Quest Pro和Pico 4,他们都是安卓一体机,开发的流程也相似。本文不展开两个设备的参数对比,只讨论开发的体验。这两个月通读了Quest和PICO的开发文档,也初步完成了一些项目,想把其中的心得分享出来,供您参考。

👆彩色透视功能简单地说就是把摄像头拍到的画面与虚拟对象叠加在一起,实现混合现实效果。之前我用Quest PRO测试过,戴上头盔实际体验感觉要更好。
先说开发体验:两者的开发环境、SDK的结构类似,Quest提供了很多示例场景、官方演示工具包,方便开发者直接抄作业,开发者工具也相对成熟好用;Pico看似对应的功能都支持,但基本都只给了示例代码,演示场景很少,一些功能文档只有寥寥几句,Unity文档半天就能看完,有一种先模仿大厂搭好骨架,日后慢慢更新的感觉。
再说挑战:国内开发Quest的主要挑战是网络,Meta的服务器在海外。比如支持通过串流在Unity里实时预览场景,但串流要先启动Oculus客户端登录,有时候这个过程会失败。还有一些奇怪的问题也是因为网络,比如启用空间锚点功能的应用,在头盔初次启动应用时候需要联网,否则锚点加载失败(不会报错)。Pico的挑战是资源和教程较少,而且混合现实的进阶功能得有内测渠道才能体验,预计新功能用起来坑会更多。
小结:MR混合现实是新功能,现阶段不论使用Quest还是PICO都要做好踩坑的准备,正式项目实在需要彩色透视的话,建议先做好充分的技术验证,把系统版本、Unity版本、SDK版本全部定下来,确定功能没问题再继续开发。而如果您的需求是开发VR游戏、或者想初步学习VR开发、体验最基础的MR功能,两者在VR方面都比较成熟,纯新手选PICO4会少一些折腾。如果是进阶开发者,能搭建稳定的网络环境、需要立体的彩色透视、项目依赖手势追踪、房间锚定、体态估算这些新功能的话,选Quest PRO。但再次申明,MR相关的新功能会带来很多麻烦的调试工作,请做好50%以上的时间用于调试、排坑的心理准备。文末记录了我近期开发遇到的一些坑,希望对您有帮助。
Q1:Quest 搭建开发环境时候,Oculus XR Plugin版本不能更新到最新。
答:应该是Unity的坑,需在package Manager里面手动输入com.unity.xr.oculus。或查看这个视频。

Q2:导出APK时候出现Library\Bee\artifacts\Android\ 错误
答:也可能是官方Bug,在一些特定的Unity版本中会出现,
我的做法是把Unity版本升级至2022.2.17,XR插件3.3.0,OC_SDK V53。这也是我最近使用稳定的一套开发环境。
参考链接:
https://issuetracker.unity3d.com/issues/il2cpp-buildfailedexception-and-bee-errors-are-thrown-in-the-console-window-when-building-project-for-android

Q3: 彩色透视功能可以实时在电脑上预览吗?
答:【2023年7月】Quest pro可以,Pico不可以。SDK更新到V54以后,彩色透视就可以在电脑上实时预览了,帧率目测 有20帧。(有线Link)
补充:Ques在SDK 53版本以前通过Link预览彩色透视画面十分卡顿,有线无线都是不可用的状态;那时候使用Quest 2,预览黑白色的透视画面,倒是可以流畅预览。
Q4:提示安卓ADB版本41 ,40错误,导致打包失败。
答:新安装的UNIT内置的ADB版本冲突。比如你在用Unity2022.3打包出现这个问题,我的做法是,把Unity2021安装路径里面对应的ADB拷贝到当前Unity2022.3文件夹中覆盖。大致的路径是sdk--platform。
Q5:应用莫名闪退,尤其或升级了SDK、关闭了防护边界等操作后应用不稳定。
答:真干活儿还是需要稳定的版本,例如我验证过:Unity版本2022.2.17,XR插件3.3.0,OC_SDK V53。这套组合可以彩色透视+手势追踪+房间锚点,缺点是在编辑器里面预览彩透会很卡。
各种其他新功能引发的奇怪问题,大概率是网络不稳定或者是硬件层面的BUG;比如开发者选项里面关闭防护边界后,彩色透视的应用就会不稳定、屏幕录制会看不到透视画面等等……这些在未来数月也未必能稳定,因此在商业项目中要谨慎使用新功能。