如何将Valve.VR.HmdMatrix34_t转换为UnityEngine.Transform

时间:2019-11-11 13:42:52

标签: unity3d steamvr

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

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

P.S。有关该结构的信息很有价值,对我而言可能是一个起点,但是我将为一个代码示例定价,在该示例中,我可以看到如何为位置,旋转和缩放(或完整的Transform)提取统一的Vector3。

1 个答案:

答案 0 :(得分:1)

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

您可能会出错的地方是了解HmdMatrix在场景图中的位置,从而了解是直接应用它还是使用它的反函数。