PicoVR/Quest2 开发入门教程系列(三) -- Quest2使用Oculus Link模式&SteamVR模式开发

1,554 阅读3分钟

Quest2使用Oculus Link模式&SteamVR模式开发

在前面的总结中, 我们知道了直接使用Unity直接开发Pico/Quest2的方式 -- 直接用Unity的Build Settings|Platform 里面选择Android平台, 并打包出apk, 然后使用adb或者其他的方式安装App到对应的Pico 或者 Quest2中, 运行即可.

  1. Quest2 需要提前打开开发者模式, 并且要下载 Oculus 专用的ADB.
  2. Quest2 的 Oculus SDK Plugin, 在 Unity 的官方插件原生支持, 不需要像Pico那样从官网下载SDK, 然后从磁盘加载. 直接在 Package Manager 中搜索即可

但是这种方式进行开发时, 调试效率非常低.

我们知道Unity在Debug应用时, 通过Unity Editor可以实时看到各个GameObject的属性等信息, 但是前文的方式不行!!!

虽然有VR的Windows Simulator进行模拟运行, 但是VR Input中的HMD & Controller输入模拟非常困难.

因此, 这里总结一下使用Oculus Link的开发环境搭建:

  1. 使用Windows PC的显卡进行渲染
  2. 使用Quest2进行画面显示
  3. 可以使用HMD & Controller进行输入控制
  4. Unity Editor中能看到程序运行过程中, 各个GameObject的实时信息

两种方式

Oculus Link功能开启, 打开Quest2的桌面控制台, 在VR中启动Unity Play

Oculus Link开发模式需要使用PC的显卡进行游戏渲染, 因此对PC的硬件有要求. 并且对于Unity的配置也有一些调整.

Oculus Link 对PC的CPU和显卡都有要求, 可以参考 https://www.oculus.com/accessories/oculus-link/?locale=zh_CN#pc-vr-ready 中查看一下 我的GPU是GTX 1660s 支持 Oculus Link

  1. Quest2 打开开发者模式, 网上有很多教程
  2. 安装 Oculus 专用 ADB, 安装PC版本Oculus APP
  3. Unity安装Oculus XR PluginXR Plugin Management
  4. Build SettingsPlatform选择Android平台
  5. 在正常连接Quest2到PC中以后, 在Quest2中设置页面打开Oculus Link, 此时会自动打开PC上的Oculus APP
  6. Quest2的工作台中, 选择PC的桌面, 能在这里操作PC的桌面!!!.
  7. 在Quest2设备中的Oculus Link工作台中, 直接运行Unity EditorPlay按钮, 能看到Quest2中APP在运行, 并且能看到PC中的Unity EditorGame也能实时接受HMD & Controller的输入!!!

注意第6步, 是在Quest2头显VR中的桌面操作Unity

在Unity中配置OpenXR Plugin, 使用SteamVR开发

这是Oculus Link模式开发的升级版

  1. 需要在Unity的Window | Package Manager中增加OpenXR Plugin插件
  2. File | Project Settings | XR Plug-in Management 中的Windows Tab中选择OpenXR, 此时会报错, 点击Fix me
  3. File | Project Settings | XR Plug-in Management | OpenXR 中的Windows Tab 中的Interaction Profiles选择Oculus Touch Controller Profile
  4. 在PC中的Oculus APP中的设置 | 通用 | OpenXR Runtime选项打开
  5. 使用Oculus Link连接PC
  6. 打开SteamVR, 能看到Quest2 的HMD 和ControllerSteamVR识别了
  7. 直接在PC中的Unity Editor中点击Play
  8. 能看到Unity Editor中的Game中能实时预览界面, 并且能看到PC中的Unity EditorGame也能实时接受HMD & Controller的输入!!!

注意第7步, 是在PC的桌面操作Unity!!! 注意与上一节的区别!!!