Meta Quest使用和Unity开发配置

ChainPray 发布于 19 天前 72 次阅读


笔者学校的实验室最近采购了个Meta Quest 3 用来做机械臂的遥采,结果碍于日版quest国内连不上meta服务器搞了好几天才解决网络问题,遂在此记录探索过程

激活Quest

首先推荐一个网站开始 | Meta Quest 中文指南,有问题这里说的都挺详细的

Quest首次激活的时候必须连上meta的服务器更新,并且还需要手机下载Meta Horizon软件用来绑定账号,因为在一个什么都操作不了的设备上进行魔法上网操作不太现实,所以笔者这里采用的是笔记本开热点让quest和手机连接,并且开始clash的tun模式用来代理流量

clash开启tun模式

这一步是必须的,因为windows的系统代理基本只会代理http(s)请求,meta的更新走的是udp,所以必须开启clash的TUN模式来安装虚拟显卡

首先clash需要安装服务模式,当服务模式显示绿色的时候打开tun模式开关

然后在win11的设置->网络与Internet->高级网络设置 下面能看到一张Clash(或者叫cfw-tap)的网络适配器,说明tun模式开启成功

开启电脑热点,让手机和Quest都连接这个热点,然后在上一步网络适配器的页面打开Clash网卡的设置,点击属性->共享,勾上第一个选项并选择本地连接*[数字](这个代表电脑热点的虚拟网卡),用来将热点流量接到clash虚拟网卡上使用clash代理quest和手机对于外网的tcp和udp连接

之后Quest就能够正常更新了

Meta Horizen打开开发者模式

手机上需要下载这个软件用来激活绑定Quest,没有谷歌商店下载的话网上随便找个APK安装就好了

然后按照Quest的提示输入5位设备码绑定账号,就能在Meta Horizon上看到设备了

然后进入设备页面,点击 头戴设备设置->开发者模式,打开开发者模式。如果出现下面右图的界面则需要点击这个链接去Meta官网设置开发者身份(很简单加入一个组织就好了)

然后在Quest里就能看到开发者模式的相关选项,能勾的都勾上

电脑开发环境

SideQuest

这个是用来传输文件以及安装第三方应用的软件,首先需要打开开发者模式,使用数据线连接quest和电脑,在quest里面设置“允许USB调试”,然后在Sideques里导入apk安装即可

安装好的apk需要在Quest里点击右下角应用库,然后在“未知来源”那里找到

笔者建议这里导入一个clash for Android并配置好机场,方便后面更换网络环境的时候不用每次都配网卡和TUN模式

Meta Quest Link

官方用来串流的软件,用这个的主要目的是方便后面Unity开发的时候可以直接串流调试程序而不用每次都打包成apk再装到meta quest里测试

注意这个软件只能装在Windows平台并且刚需一张1060及以上的显卡(AMD的不记得行不行了)。

安装完成后去Link的设置里打开通用->未知来源 和 Beta测试版->开发者Runtime功能+通过Meta Quest Link 透视(用来做MR功能的)

之后在Unity中点击Play的时候就能通过Link串流到Quest头显上测试了

Unity开发

注意Meta官方的Meta XR SDK更新极快,笔者写这篇文章的时候是v74版本,更新的版本可能配置方法有变,详细配置推荐查看Meta官网教程,注意unity Editor版本的匹配,下文仅记录笔者探索的过程

安装OpenXR插件

OpenXR简单理解就是一个开源规范,或者叫中间件,用来连接上层开发工具(Unity,虚幻)和下层物理设备接口(Quest,PICO等),这样开发者不用每换一个新的头显都要学一下TA的API,那样老遭罪了

下面有个简单的类比

类比内容XR 开发世界中的对应
HTML/JS/CSS你写的 XR 应用代码
Chrome / Firefox / Safari各种硬件平台(Oculus、HTC、WindowsMR)
Web 标准(W3C)OpenXR 标准

在unity编辑器中选择edit->Project Setting->XR Plug-in Management->安卓,勾上OpenXR选项

导入Meta XR core SDK

官网提供的导入方法是在Unity Asset Store订阅然后在Unity导入,但是该方法在国内版Unit并不可用,会出现以下报错

所以需要去meta官网下载sdk,Meta NPM Server for Oculus Developers,然后在unity中通过tarball导入meta XR core SDK,等待一段时间后会在Unity工具栏出现一个Meta选项,这个相对以前版本(v70以前)是一个很大的改变,这意味着不用再手动处理不同SDK之间的依赖,可以使用Meta选项下的Building Block来安装需要的SDK

使用Building Block

强烈建议使用Building Block导入模块

这里只演示导入相机,手柄控制器和透传模块

点击左上角Meta XR Tools->Buiding Blocks

然后筛选core,点击CameraRig(给Quest渲染画面的摄像头以及手部相关锚点),Passthrough(MR关键组件,透传显示画面)和 Controller Tracking右下角的按钮,将组件添加到Unity项目中

然后如果开启了Quest Link的话在Unity点击运行就可以在Quest中看到Unity实时渲染的画面了,不过笔者这里出现了渲染撕裂和无法追踪手柄的情况,于是使用build将Unity打包到Quest中运行,就能够成功显示控制器和待渲染物体了

深圳大学腾讯创新俱乐部的一名TICer,目前致力于成为全栈工程师
最后更新于 2025-05-21