更新日志
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.3 | 2026 年 9 月 23 日 | HexR 菜单实时显示每根手指的触觉。HexRGrabbable 保留为备选的抓取方式,不再弃用。HexRInteractableHaptics 新增 Auto Find Pressure Controllers 选项。 |
| 0.9.2 | 2026 年 9 月 23 日 | PICO:抓取触觉现在可以找到 XR Interaction Toolkit 的交互器(interactor)。对于绘制在被剔除图层上的手,Show Colliders 现在也能显示。 |
| 0.9.1 | 2026 年 9 月 23 日 | HexR 菜单的默认位置与 Meta 教程中的摆放一致:位于用户左侧、面向用户,宽 0.26 m。 |
| 0.9.0 | 2026 年 9 月 23 日 | 破坏性变更。两种后端都不再使用幽灵手(ghost hand):指尖和手掌触发器直接位于你所用 SDK 的被追踪的手上。PhysicsHandTracking 现更名为 HexRTrackedHand。请参阅升级。 |
| 0.8.0–0.8.5 | 2026 年 9 月 21 日 | 装置(rig)预制体重新只有一个根节点。菜单改版:按钮上显示连接状态、默认开启透视、新增场景切换器。Android 只申请设备实际具备的蓝牙权限。日志中加入了蓝牙连接诊断信息。 |
| 0.7.0–0.7.9 | 2026 年 9 月 21 日 | 统一为一个菜单:HexR 菜单(HexR → Add HexR Menu)取代 HexR Panel,成为完整的控制界面,其按钮由真实的指尖按下。HexRManager 更加精简,并移除了无用代码。 |
| 0.6.0 | 2026 年 9 月 21 日 | 一个 HexRInteractableHaptics 组件同时支持 OpenXR 和 Meta。HaptGlove 运行时以源代码形式放在 HaptGlove.Runtime 程序集中提供,不再是预编译的 HaptGlove.dll。蓝牙断连会被检测到,并以退避(backoff)方式重试。 |
| 0.5.0, 0.5.1 | 2026 年 9 月 15–16 日 | 通过 OpenXR 路径支持 PICO。 |
| 0.4.0 | 2026 年 8 月 23 日 | 一套代码支持 Unity 2022.3 至 6.x。 |
| 0.3.0, 0.3.1 | 2026 年 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 无论如何都要求添加 ProximityCheck | Near-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 是当前一代产品:一款无需连线的气动手套,电子元件位于腕部的手臂模块中。这是硬件版本,而不是软件版本。请参阅套件与硬件。