Unity 适配¶
Unity 第一版通过 WebSocket JSON 订阅信息中枢 status 帧,不使用专用二进制协议,也不触碰
IMU UDP 数据。脚本按 frame_id 丢弃旧帧,并使用 frame_time_ns 保留两帧缓冲后插值。
接入¶
先启动信息中枢;建议为 Unity 设置
--status-hz 50。将
adapters/unity/Assets/WirelessImuMocap/MocapWebSocketClient.cs放入 Unity 项目的Assets/。在场景中新建对象并挂载
MocapWebSocketClient。设置
bodyRoot,并分别绑定leftRig、rightRig的肩、肘、腕、掌和指尖 Transform。将
hubUrl设置为信息中枢地址,例如ws://127.0.0.1:8765。
坐标变换固定为:
body_rh (X 前, Y 左, Z 上)
-> Unity (X 右, Y 上, Z 前)
Unity = (-body.Y, body.Z, body.X)
这是轴置换加左右方向的必要符号变换,保持人体解算的 body_rh 语义。wear_side=left/right
决定激活哪一套 rig;同一时刻只显示当前佩戴侧。
限制¶
本版使用
ClientWebSocket,面向 Unity Editor、Windows/Linux/macOS standalone;WebGL 需要 浏览器 WebSocket 实现,暂不在本项目内提供。仅在收到
frame=body_rh的状态帧时更新。frame_time_ns缺失时仍可显示最新帧,但不会进行时间插值;这表示源数据未完成共同时间轴 对齐,应优先排查同步状态。