首页 > 解决方案 > 如何将 Valve.VR.HmdMatrix34_t 转换为 UnityEngine.Transform

问题描述

我试图通过这个错误,在导入 MixCast SDK 时无法从“Valve.VR.HmdMatrix34_t”转换为“UnityEngine.Transform”。有谁知道如何将'Valve.VR.HmdMatrix34_t 转换为'UnityEngine.Transform?我查看了https://valvesoftware.github.io/steamvr_unity_plugin/api/Valve.VR.HmdMatrix34_t.html结构,它对我没有多大帮助。

所以问题是在哪里可以找到有关 HmdMatrix34_t 结构的详细信息,以便能够将其转换为 Unity Transform。

PS 有关结构的信息很有价值,可以作为我的起点,但我将真正为代码示例定价,我可以在其中了解如何提取统一 Vector3 的位置、旋转和缩放(或完整的变换)。

标签: unity3dsteamvr

解决方案


转换矩阵是一个 4x4 数组,但真正使用的只有 3x4。这就是 Valve HmdMatrix34_t(“t”代表“type”,它是 C 的东西)。只需将单元格值注入HmdMatrixUnity 的前三行(或列,我总是混淆优先级),Matrix4x4然后将其分配给您的transform.

你可能出错的地方是理解HmdMatrix场景图中的位置,因此是直接应用它还是使用它的逆。


推荐阅读