在Microsoft HoloLens上找到网格中的固定点

问题描述 投票:3回答:1

我一直试图在HoloLens应用程序运行期间(网格由Microsoft HoloLens生成)在网格中找到一个固定点,我可以在重新启动应用程序之后找到它,但没有成功。我的目标是在网格中找到一个固定点,我将在放置从上次应用程序运行中保存的预制件时与之相关。我将使用该点作为原点,将预制件放置在网格中的先前位置,从而将它们显示在最初放置在网格中的位置。

我试图执行以下操作,结果不正确:

  • 保存SpatialMapping GameObject的transofrm组件的LocalToWorld / WorldToLocal Unity4x4矩阵,并在预制件的位置上执行Matrix4x4.MulitplyPoint()
  • 转换预制件相对于生成的网格的局部中心的位置
  • 转换预制件相对于第一个子网格中心的位置

请注意,即使在将来的应用程序运行中,我也不会在放置预制件后更改网格(禁用空间曲面的更新)。

唯一的限制是我不能使用WorldAnchors,因为我需要能够在MixedReality应用程序之外编辑那些预制件的位置(特别是在WebGL应用程序中),然后在HoloLens应用程序中的正确编辑位置显示它们。网格。

unity3d mesh hololens unity-webgl windows-mixed-reality
1个回答
1
投票

这正是一项锚定任务。网格中没有固定点。

  1. 你需要把锚放在世界上。然后获取GetNativeSpatialAnchorPtr
  2. SpatialAnchor有TryCreateRelativeTo()方法。用它来创建编辑的位置。
  3. 从编辑的位置分配SetNativeSpatialAnchorPtr()。
© www.soinside.com 2019 - 2024. All rights reserved.