← 返回索引页
2.1.1 更新日志
依赖项
- 更新 haply-inverse-c.dll 至 2.1.1 版本(需要 Inverse SDK >= 2.1)
- 更新 Haply.Inverse.dll 至 2.1.1 版本
- 新增 com.unity.xr.core-utils 2.3.0 版本
注意
本次更新破坏了与 Unity 2022.1.0f1 之前的版本的兼容性。 如遇兼容性问题,请升级到更高版本。
破坏性变更
- Inverse3 和 VerseGrip 将
device作为ConnectionStateChanged事件的第一个参数传递ConnectionStateChanged(state, prevState)>ConnectionStateChanged(device, state, prevState)ConnectionStateChangedAsync(state, prevState)>ConnectionStateChangedAsync(device, state, prevState)
- DeviceMapper 的
State属性改为只读
新功能
- Inverse3Body 组件将 Inverse3 设备的身体朝向应用到指定的 GameObject。
- Inverse3:
- Device Data(检查器)显示
ControlMode,以及最后发送到设备的Force、Position或Angles。 JointsAngles和JointsAngularVelocity。Powered表示设备当前是否已通电。PowerSupplyStatusChangedUnity 事件,在电源状态发生变化时触发。Orientation获取 Inverse3 设备的当前朝向。OrientationChangedAsync事件,在身体朝向发生变化时触发。RequestOrientation(),用于手动请求身体朝向。ControlMode获取当前控制模式(CursorForce、CursorPosition、JointsTorques、JointsAngles)。ControlModeChangedUnity 事件,在控制模式发生变化时触发。ForceOutput、PositionOutput、JointsTorqueOutput和JointsAnglesOutput获取当前输出值。Release()通过发送 null 力值来重置设备控制(替代TryResetForce())。CoordinateConverter,用于通过预设文件或直接赋值来定义坐标转换设置。ErrorEvent在主线程上触发,即当与已映射设备关联的 ClientConnection 错误事件发生时。
- Device Data(检查器)显示
- VerseGrip:
CoordinateConverter,用于通过预设文件或直接赋值来定义坐标转换设置。ErrorEvent在主线程上触发,即当与已映射设备关联的 ClientConnection 错误事件发生时。
- DeviceMapper:
- 在运行时映射已连接的设备。
- 获取每个 Inverse3 设备的 Inverse3 电源状态和 身体朝向。
DeviceInfoPollingMode的模式包括Manual、Once(默认)或ContinuousdevicesInfoPollDelay的安全最小值:请求身体朝向时为1sec,否则为0.5sec。- 仅在组件启用时初始化。
- 带过滤条件的设备获取方法:
GetInverse3Devices(handedness)获取按指定左右手方向(handedness)过滤后的 Inverse3 设备。GetVerseGripDevices(handedness)获取与匹配指定左右手方向(handedness)的 Inverse3 设备 相关联的 VerseGrip 设备。GetInverse3(handedness)获取匹配指定左右手方向(handedness)的第一个 Inverse3 设备。GetInverse3(verseGrip)获取与给定 VerseGrip 设备相关联的 Inverse3 设备。GetVerseGrip(inverse3)获取与指定 Inverse3 设备相关联的 VerseGrip 设备。
- 在 VerseGripCursor 和 Inverse3Body 组件上新增了 OrientationSettings。
VerseGrip.Orientation替代VerseGrip.LocalRotation。- 为 Inverse3 缓存提供显式的 Inverse3Data 类型:
- 缓存状态属性:
CursorPosition、JointsAngles、JointsAngularVelocity、Orientation, GravityCompensation、StatusPowerSupply、ConfigTorqueScaling- 缓存的控制输出
属性:
ControlMode、CursorForceOutput、CursorPositionOutput、JointsTorqueOutput,JointsAnglesOutput。 coordinateConverter用于按指定的坐标系转换接收和发送的数据。- 缓存订阅客户端,以便自动更新。
- 缓存更新时触发事件。
- 缓存状态属性:
- 显式的
Joint3结构体,包含三个 float 成员j0、j1和j2(用于JointsSetTorque和JointsSetAngles)。 - 为 VerseGrip 缓存提供显式的 VerseGripData 类型:
- 缓存状态属性:
Orientation、IsAttached、ButtonCount。 - 缓存的按钮状态。
- 缓存订阅客户端,以便自动更新。
coordinateConverter用于按指定的坐标系转换接收的数据。- 缓存更新时触发事件。
- 缓存状态属性:
- CoordinateConverter(替代
UnityConvert),用于分别定义如何将设备坐标空间转换为 Unity 坐标空间:Inverse3CoordinateConverter,用于转换光标坐标和身体朝向。VerseGripCoordinateConverter,用于转换 VerseGrip 的朝向。Vector3Settings和QuaternionSettings结构体,用于存储坐标系转换设置。- 可通过组件或 Assets 菜单为 Inverse3 和 VerseGrip 创建默认的坐标转换器预设。
- Inverse3(Arm Forward Pose) 转换器,其设置适用于手臂朝向用户、LED 图标位于 侧面的设备。
- Inverse3(Icon Forward Pose) 转换器,其设置适用于 LED 图标朝向用户、手臂位于 侧面的设备。
- VerseGrip(默认) 转换器,适用于屏幕朝前、用户输入按钮位于顶部的设备。
- ClientConnection 在设备打开时获取
FirmwareVersion、GravityCompensation和TorqueScaling。 - ConnectionMonitor 显示
GravityCompensation、TorqueScaling和PowerSupply。
Bug 修复
Inverse3.DeviceStateChanged同样会在调用JointsSetTorque和JointsSetAngles时触发。- 断开连接后自动重新连接设备。
- 构建退出时清理客户端轮询线程。
- 修复了若干 bug 并提升了稳定性。
- 修复场景卸载/加载后的设备映射问题
已弃用
ClientConnection.Configuration.HapticFrequencyHz已被HapticPollFrequency取代ClientConnection.Configuration.PollDelayNs已被HapticPollDelayNs取代DeviceBehaviour.ConnectionStateChangedAsync将在下一个主要版本中移除Inverse3.Position已被Inverse3.CursorPosition取代Inverse3.LocalPosition已被Inverse3.CursorLocalPosition取代Inverse3.TryResetForce()已被Release()取代VerseGrip.LocalRotation已被VerseGrip.Orientation取代JointsSetTorque(Vector3)已被JointsSetTorques(Joint3)取代JointsSetTorque(float, float, float)已被JointsSetTorques(float, float, float)取代JointsSetAngles(Vector3)已被JointsSetAngles(Joint3)取代
← 返回索引页