开发者 / Unity / Meta Quest 分步教程
Meta Quest 教程项目
获取 Meta Quest 教程项目,了解它的三个场景分别如何添加触觉反馈。
获取项目
项目托管在 GitHub 上:HexR-Developer-Tutorial-Meta-OVR ↗。你可以克隆该仓库,或在该页面使用 Code → Download ZIP。
shell
git clone https://github.com/MicrotubeTechnologies/HexR-Developer-Tutorial-Meta-OVR.git- 使用 Unity 6000.0.66f2 或更新版本打开。首次打开时,Unity 会从 GitHub 下载 HEXR 插件包,这需要几分钟,并且你的
PATH中需要有 git。 - 按照项目设置中的说明,添加免费的 Meta XR All-in-One SDK。
- 该项目使用 HEXR
#v0.9.3,比本插件包落后一个版本;将固定版本改为#v0.9.4即可获得相应修复。固定版本位于Packages/manifest.json中com.microtube.hexr那一行的末尾。 - 场景位于
Assets/Scenes/。使用 Build And Run 部署到你的 Quest(如何安装到头显),然后在 HexR 菜单中连接手套;菜单中的场景按钮可在三个场景之间切换。首次运行时,请允许蓝牙权限 Nearby devices——为什么这很重要。
教程场景
每个场景展示一种不同的触觉添加方式。Meta 的 Interaction SDK 负责检测抓取、捏合或戳按;HEXR 决定手套如何反馈。在 Unity 中选中任意对象,即可查看它的组件。
1. Basic Tutorial(基础教程)
桌上有四个物体,每个都以不同方式触发。
| 对象 | 触觉的添加方式 | 你的感受 |
|---|---|---|
| 泡沫球 发光的球——把它拿起来 | HexRInteractableHaptics 与 Meta 的 Grabbable 挂在同一对象上,Fire On 设为 Select And Hover。无需绑定任何事件 | 从手悬停在上方的那一刻起,拇指、食指、中指和手掌就会感受到压力,并在你握住期间一直保持 |
| 钥匙 捏住它 | Meta 的 Pointable Unity Event Wrapper:When Select 调用 TriggerPinchPressure(0.3),When Unselect 调用 RemoveAllHaptics() | 握住时,拇指和食指会感受到轻微压力 |
| 火把 抓起它,然后把一根手指伸进火焰 | 抓取:When Select 调用 TriggerAllHapticsIncrease(0.5)。火焰:一个 SpecialHaptics 区域,设为 Custom Vibrations,频率 30.6 Hz | 握住时全部六个通道产生压力,伸入火焰的任何手指都会感受到振动 |
| 红色大按钮 戳一下 | Meta 的 Interactable Unity Event Wrapper:When Select 调用 TriggerAllVibrations(10),When Unselect 调用 RemoveAllVibrations() | 按下时,全部六个通道产生 10 Hz 振动 |
2. Hospital Tutorial(医院教程)
病床上躺着一位病人。将两个指尖放在手腕或颈部,即可感受到脉搏。
| 对象 | 触觉的添加方式 | 你的感受 |
|---|---|---|
| 手腕与颈部脉搏区域 | 每个区域都有一个触发盒碰撞体,SpecialHaptics 设为 Heart Beat:规律跳动,压力 0.4,开 0.4 s、关 0.3 s | 区域内的每个指尖都会感受到约每分钟 86 次的稳定脉搏 |
3. Water Effects(水效果)
一个喷泉和一朵雨云。把手伸进去试试。
| 对象 | 触觉的添加方式 | 你的感受 |
|---|---|---|
| 喷泉 | 水面上方有一个触发胶囊碰撞体,SpecialHaptics 设为 Fountain | 浸入水中的每个指尖和手掌都会感受到 18 Hz 振动 |
| 降雨 | 云下方有一个大型触发胶囊碰撞体,SpecialHaptics 设为 Rain Drop | 随机手指上会出现短暂的按压,就像落下的雨滴。只有手掌才能触发,因此请将手掌平放在云下方 |
场景添加触觉的三种方式
- 组件——
HexRInteractableHaptics与 Meta 的抓取组件挂在一起,无需任何绑定。泡沫球。 - Meta 的事件包装器——它们的 When Select 和 When Unselect 事件调用 Pressure Controller(压力控制器)上的方法。钥匙、火把抓取、按钮。
- 触发区域——在触发碰撞体上添加
SpecialHaptics,任何伸入其中的手指都能感受到。火把火焰、脉搏、喷泉、降雨。
如何在你自己的项目中设置每种方式:触觉设置。