unity3d - 如何将 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 的位置、旋转和缩放(或完整的变换)。
解决方案
转换矩阵是一个 4x4 数组,但真正使用的只有 3x4。这就是 Valve HmdMatrix34_t
(“t”代表“type”,它是 C 的东西)。只需将单元格值注入HmdMatrix
Unity 的前三行(或列,我总是混淆优先级),Matrix4x4
然后将其分配给您的transform
.
你可能出错的地方是理解HmdMatrix
场景图中的位置,因此是直接应用它还是使用它的逆。
推荐阅读
- python - 如何加快 all_pairs_dijkstra_path_length
- powershell - Powershell 不读取 .txt 行
- javascript - 我无法实现变量支持
- rpa - 流程、活动、工作流、项目和机器人之间有什么区别?
- azure-ad-b2c - 自定义声明包含在隐式流中,但不包含在 PKCE 流中
- java - 将对象上传到 Amazon S3 时多次超时
- .net - 如何将对根 URL 的调用单独重定向到子路径
- c# - 使用表达式重用 linq 逻辑,当查询同一个实体但一次直接和一次外键连接时
- r - MacOS 上的 spacyr:“错误:未找到 Python 共享库,未加载 Python 绑定”
- windows - windows cmd 引号内的引号