如何在Unity编辑器中将HoloLens全息图相对于锚点对齐

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

我试图将全息图相对于WorldAnchors对齐,而不是手动将它们放在应用程序中。在Unity编辑器中是否有任何可视化WorldAnchors的方法来对齐相对于其位置的对象?我在Device Portal中看到了锚点数据,这与WorldAnchors有什么关系?

理想的工作流程:

1)首次扫描房间,通过Device Portal获取房间网格.obj。同时运行一个助手Unity应用程序并放置锚点供以后参考(例如在房间角落)。

2)如果可能,将.obj导入Unity,以及Device Portal锚点。

3)将这些WorldAnchors转移到一个新的Unity项目,并将全息图与锚点对齐。

4)首次在HoloLens上运行这个新应用程序,并将全息图正确放置在空间中,而无需用户进一步调整锚点。


以下是使用Vuforia的示例,但我想使用WorldAnchors(或某种方式在Device Portal中的锚点)来获得无标记解决方案:https://youtu.be/W7z2sggDGoo?t=1689

这里引用的脚本为404s:https://github.com/Microsoft/MixedRealityToolkit-Unity/issues/530

https://forums.hololens.com/discussion/10725/placing-holograms-at-predefined-locations-in-spatial-mapping-hololens几乎提供了一个解决方案,但仍无法解释锚点和房间网格如何在开发中对齐,以便在打开应用程序时准确放置。

谢谢!

编辑 - 这是一个类似的问题:Placing objects at set locations in a pre-scanned room有没有比“在应用程序的首次运行中手动放置所有对象”更好的解决方案?

c# unity3d hololens
2个回答
1
投票

据我所知,世界锚仅在运行时存在,并且无法将它们导出到统一或已经在统一中添加预定义的锚。

我有类似的问题,并与vuforia ImageTargets一起使用,它的效果非常好。


0
投票

听起来你想要使用WorldAnchorStore(UnityEngine.XR.WSA.Persistence)。这允许锚点在会话之间和应用程序之间持久保存在设备上,并且(在我的脑海中)可能是您在Device Portal中看到的锚点的来源。

如果您在项目中使用混合现实工具包,则会有一个帮助器,WorldAnchorManager(在Common / Scripts中找到)包装底层功能。

© www.soinside.com 2019 - 2024. All rights reserved.