Microtube 文档
EN中文
开发者 / 资源 / 更新日志

更新日志

HEXR Unity 插件包、Python 库和手套在每个版本中的变更。

Unity 插件包 — com.microtube.hexr

当前版本为 0.9.4,发布于 2026 年 10 月 11 日。每个版本都是插件包仓库中的一个 tag,因此你可以在 git URL 末尾加上 #v0.9.4 来固定使用某个版本。要查看项目使用的是哪个版本,请查看插件包 package.json 中的 "version" 字段,或 Packages/packages-lock.json 中的对应条目。

版本日期变更内容
0.9.4 — 当前版本2026 年 10 月 11 日修复了 0.9.3 中列出的 Unity 问题(Mac 上的问题除外),详见0.9.4 修复的问题。新增:HexRManager.Connect、Disconnect、IsConnected 和 IsConnecting;HaptGloveHandler.ReleaseAllChannels、ReleaseChannels 和 releaseWhenPaused;PressureTrackerMain.StrengthToIntensity。应用退出、暂停或断开连接时会释放手套。插件包附带编辑模式(edit-mode)回归测试。触感会有所不同:请参阅升级。
0.9.32026 年 9 月 23 日HexR 菜单实时显示每根手指的触觉。HexRGrabbable 保留为备选的抓取方式,不再弃用。HexRInteractableHaptics 新增 Auto Find Pressure Controllers 选项。
0.9.22026 年 9 月 23 日PICO:抓取触觉现在可以找到 XR Interaction Toolkit 的交互器(interactor)。对于绘制在被剔除图层上的手,Show Colliders 现在也能显示。
0.9.12026 年 9 月 23 日HexR 菜单的默认位置与 Meta 教程中的摆放一致:位于用户左侧、面向用户,宽 0.26 m。
0.9.02026 年 9 月 23 日破坏性变更。两种后端都不再使用幽灵手(ghost hand):指尖和手掌触发器直接位于你所用 SDK 的被追踪的手上。PhysicsHandTracking 现更名为 HexRTrackedHand。请参阅升级。
0.8.0–0.8.52026 年 9 月 21 日装置(rig)预制体重新只有一个根节点。菜单改版:按钮上显示连接状态、默认开启透视、新增场景切换器。Android 只申请设备实际具备的蓝牙权限。日志中加入了蓝牙连接诊断信息。
0.7.0–0.7.92026 年 9 月 21 日统一为一个菜单:HexR 菜单(HexR → Add HexR Menu)取代 HexR Panel,成为完整的控制界面,其按钮由真实的指尖按下。HexRManager 更加精简,并移除了无用代码。
0.6.02026 年 9 月 21 日一个 HexRInteractableHaptics 组件同时支持 OpenXR 和 Meta。HaptGlove 运行时以源代码形式放在 HaptGlove.Runtime 程序集中提供,不再是预编译的 HaptGlove.dll。蓝牙断连会被检测到,并以退避(backoff)方式重试。
0.5.0, 0.5.12026 年 9 月 15–16 日通过 OpenXR 路径支持 PICO。
0.4.02026 年 8 月 23 日一套代码支持 Unity 2022.3 至 6.x。
0.3.0, 0.3.12026 年 8 月 13–21 日首次作为独立插件包发布。不强制依赖任何 XR 后端。提供 Create Demo Scene 和设置工具。

0.9.4 的测试情况。它可以在 Unity 6000.6 下分别搭配 XR Interaction Toolkit 3.6.0 和 Meta XR SDK 205 编译,34 个编辑模式回归测试全部通过。把其中六个已修复的 bug 重新引入后,覆盖它们的测试会失败。它尚未在头显上搭配手套运行过,教程项目仍固定使用 0.9.3。

0.9.4 修复的问题

0.9.3 中0.9.4 中
HexRInteractableHaptics.strength 以 10–60 的值传入一个接受 0.1–1 的调用,因此每个值都以最大强度按压。SpecialHaptics 的 Custom Haptics 压力和 HexRPhysicalButton.pressPressure 也有同样的问题三者都已做换算,因此 10 对应手套最轻的压力(约 15 kPa),60 对应最强的压力(约 50 kPa)
followGrip 不起作用:它在 Pressure Controller(压力控制器)上查找 FingerUseTracking现在会在手上查找它(装置把它放在手上),并按握力缩放压力
HexRGrabbable 在没有父对象时启动就会抛出异常(Create Demo Scene 生成的立方体也是如此),抓取时其触觉也会抛出异常。而且在默认强度 10 下,手套本来也不会有反应它从场景根节点开始查找,发送到正确的手套,使用 10–60 的强度范围,并在抓取中途被禁用时释放
没有 HexR 菜单时,ConnectLeftBT() / ConnectRightBT() 会抛出异常,并且在场景重新加载前,该手无法再次连接没有菜单也能正常工作,并且 Connect(hand) 只负责连接,绝不会断开连接
OpenXR 的手部靠近检测无法读取 XRI 3 的 Near-Far Interactor,而且 Validate Scene Setup 无论如何都要求添加 ProximityCheckNear-Far Interactor 的近距离抓取现在会被计入。验证器接受已关联的交互器或 ProximityCheck
在 Meta 上,Auto Setup 只在手的子级中查找抓取和戳按交互器现在也会在手的同级中查找(Interactions Rig 把它们放在那里),并且只取属于该手的交互器
在 Meta 上,HexRUsable 无法区分左右手,并且每次使用后都会抛出异常在两种后端上都从触点读取是哪只手
应用退出或暂停时,没有任何机制释放手套。SpecialHaptics 被禁用时也不会释放退出、暂停和断开连接都会释放手套;禁用 SpecialHaptics 区域也会释放

0.9.4 的已知问题

问题解决方法
如果应用崩溃或蓝牙连接断开,手套会保持最后的压力:任何指令都无法送达手套,而其固件不会在连接丢失时释放关闭手臂模块。在代码中,于重新连接时执行释放,详见重新连接时释放
在 Near-Far Interactor 上,只有关闭远距离投射(far casting)时,悬停才会被算作手部靠近改为在 Select 时触发,或在物体上添加 ProximityCheck
插件包中附带了 macOS 蓝牙库,但没有任何代码调用它,因此在 Mac 上 Unity 无法连接手套在 Windows 上开发,或在 macOS 上使用 Python 库
Python 库固定使用 bleak 0.22.3,它无法在 Python 3.14 或更高版本上安装使用 Python 3.8 至 3.13

升级

原版本处理方法
0.9.3场景无需任何改动,但触感会有所不同。现在每个强度值都会生效,而之前它们全都以最大强度按压,所以强度 30 约为 30 kPa,而不是 50;HexR 菜单的按钮按压也更轻。如果某个值现在感觉太轻,请调高它。Follow grip 现在会真正跟随握力。HexRGrabbable 在默认强度 10 下现在可以感觉到。应用退出或暂停时手套会松开——如果需要在暂停期间保持压力,请关闭 releaseWhenPaused。HexRUsable 在一次使用后只触发一次 WhenStopUsingTriggerEvents,而不是在手张开的每一帧都触发
0.9 之前引用了 PhysicsHandTracking、HexrRoot 或旋转偏移的代码需要更新;场景仍可正常使用,因为 HexRTrackedHand 保留了相同的脚本 GUID。如果项目在 Assets/ 下有自己的装置副本,或场景中有已解包(unpacked)的装置,可以用 HexR → Migration → Remove Ghost Hand 移除幽灵手。然后在每个场景中运行 HexR → Troubleshoot → Re-run Auto Setup
0.7 之前HexR Panel 已移除。请通过 HexR → Add HexR Menu 添加 HexR 菜单
0.6 之前删除你自己放在 Assets/Plugins/ 下的所有 HaptGlove.dll 或 ArduinoBluetoothAPI* 二进制文件。它们现在会与插件包的 HaptGlove.Runtime 冲突,导致项目无法编译
0.2.x插件包不再自动引入 Meta SDK。依赖这一点的 Meta 项目现在必须自行声明 Meta XR SDK

Godot 插件

0.2.0,按 Unity 插件包的样子重塑:采用其类名和成员名(HaptGloveHandler、Haptics、PressureTrackerMain、HapticFingerTrigger、SpecialHaptics 等);新增 SceneLoader 和项目场景列表;悬浮菜单采用 Unity 的外观;新增 HexR 菜单,以及带有 Unity 三个标签页的 HexR Tools 停靠面板;Project Setup 可安装 OpenXR Vendors 插件和导出预设;并提供更新检查。从 0.1 升级:删除 addons/hexr,安装 0.2.0,然后运行 HexR → Migration → Upgrade 0.1 Scenes。

0.1.0,首个版本,以预览版发布:手套协议与 Unity 插件包 0.10.5 逐字节一致;支持 Android 头显和 Windows 上的蓝牙连接;带触点的被追踪的手、Pressure Controller(压力控制器)和场景节点、悬浮菜单、HexR 停靠面板(dock)以及 HexR Remote。

Python 库 — HaptGlovePython

Python 库没有带编号的版本。请使用其 main 分支上的最新提交,最近一次更新于 2025 年 5 月 5 日。

手套硬件

HEXR Glove 2.0 是当前一代产品:一款无需连线的气动手套,电子元件位于腕部的手臂模块中。这是硬件版本,而不是软件版本。请参阅套件与硬件。