←返回索引页
依赖项
- Haply 反向运行时 SDK 2.0.0 版本
- haply-inverse-service.exe:最低 2.0.0 版本(必须在后台运行)
- haply-inverse-c.dll:2.0.0 版本(已包含)
- Haply.Inverse.dll:2.0.0 版本(已包含)
破坏性变更
- 将HapticThread和HandleThread替换为 Inverse3 和VerseGrip。
- 使用
DeviceStateChanged(device) 高频订阅事件的替代方案 Run(callback) 方法。
- 将
hapticThread.onInitialized 将“事件”替换为 Inverse3.DeviceOpened。
- 将
handleThread.onInitialized 将“事件”替换为 VerseGrip.DeviceOpened。
- 触觉回调参数不再包含光标
position 和 velocity。
- 已移除线程安全的托管
AdditionalData,改为由用户自行定义数据处理方式。
新功能
- 监控窗口(“窗口” > “Haply ” > “连接监控”),用于直观显示已连接设备的状态。
- Haply 创建菜单(GameObject >Haply > Haptic Rig),可一键完成场景设置,并自动添加所有必需的 GameObjects。
- DeviceMapper,用于自动分配 Inverse3 和VerseGrip设备。
- “客户端配置”组件,用于特定连接场景,并可控制所需的触觉反馈循环
频率。
- Inverse3 组件 (替代 HapticThread),用于在空间中定位Inverse3 设备、获取其位置,
并在高频线程中控制力。
Inverse3.DeviceStateChanged 该事件在高频运行的独立触觉线程中触发。
- 自动将设备局部空间转换为场景世界空间,所使用的线程安全缓存变换矩阵为
LocalToWorldMatrix 和 WorldToLocalMatrix。
Inverse3.LocalPosition 和 Inverse3.LocalVelocity 提供设备局部空间中未经处理的
光标坐标。
Inverse3.Position 和 Inverse3.Velocity 提供经过世界坐标系变换后的光标坐标。
Inverse3.SetLocalForce 和 Inverse3.SetLocalPosition 一种用于通过局部
坐标控制设备的方法。
Inverse3.SetForce 和 Inverse3.SetPosition 一种通过世界坐标控制设备的方法。
Inverse3.JointsSetTorque,用于直接控制电机。
Inverse3.JointsSetAngles,用于直接控制设备的臂部位置。
Inverse3.WorkspaceCenter 根据左右手规则提供工作空间中心的坐标。
- VerseGrip 组件 (替代 HandleThread),用于在高频线程中获取 VerseGrip 的姿态,
以及按钮状态和吸附状态。
VerseGrip.DeviceStateChanged 该事件在高频运行的独立触觉线程中触发。
VerseGrip.GetButton、VerseGrip.GetButtonDown 和 VerseGrip.GetButtonUp 方法,供触觉线程内部使用,
其逻辑与 UnityEngine.Input 保持一致。
- Unity 事件在主线程中触发,用于场景和 UI
交互:
VerseGrip.ButtonDown、VerseGrip.ButtonUp、VerseGrip.Attached,
以及 VerseGrip.Detached。
- Inverse3Cursor和VerseGripCursor组件,用于在场景中可视化光标的位置和姿态,
并管理模型。
- HapticOriginGameObject,便于对工作空间进行缩放和定位。
- 使用 gizmos 可直观显示设备的位置、姿态以及左右手方向。
- 使用小工具可视化可达工作空间。
- 日志过滤功能。
- 教程示例。
- 实验性示例。
问题修复与改进
- 检测到设备时,系统会立即提供Inverse3 的左右手方向,无需再打开设备进行查询。
- 设备自动检测(借助Haply 的Inverse Service和DeviceMapper)
- 将触觉循环频率从约 1000Hz 提高到约 4000kHz。
←返回索引页