使用MRTK中的WorldAnchorManager

问题描述

此刻,我尝试使用MRTK 2.4的实验性WorldAnchorManager(请参阅official API entry)。总的来说,一切看起来都很轻松。首先,您必须创建Manager的实例,并将其分配给要使用它的脚本。之后,应该可以使用以下代码将锚点加载到对象中:

public string AttachAnchor(GameObject gameObjectToAnchor,string anchorName = null)

此代码还保存了API中提到的Anchor。

如果我想从GameObject中删除锚点,可以致电:

public void RemoveAnchor(GameObject gameObjectToUnanchor)

在我的Unity项目(2019.3.7)中,我计算了一些游戏对象的位置,然后通过上述方法为它们分配了锚点。如果我移动了游戏对象,我将移除锚点,并在移动过程完成后再次进行锚定。

如果我将解决方案部署在HoloLens2上,放置游戏对象,固定锚点,并获得一条记录,说明已经成功固定了锚点,则应该在整个会话期间在hololens2上本地访问这些锚点。不幸的是,在我的情况下,在设备上重新启动应用程序并重新加载锚之后,无法加载它们。 Manager记录“无法加载' GO名称'的锚...正在创建新的锚”。

我不确定我做错了什么,该经理应该已经工作了吗?我是否必须在Unity项目中配置某些内容才能使用Manager?也许有人已经在使用Manager,可以帮助我解决此问题。

解决方法

好的,我编写了一个小示例应用程序,它使用了MRTK的世界锚点管理器。 基于以下步骤:https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/persistence-in-unity,该应用程序使用户可以将多维数据集放置在任何位置,并在每次释放多维数据集时自动创建和保存锚点。 当应用关闭并重新启动时,将加载锚点并将多维数据集放置在其保存的位置。

可在此处找到来源:https://github.com/anders-lundgren/mrtk-world-anchors

在Unity 2019.4.9f1,Visual Studio 2019,HoloLens 2(内部版本10.0.19041.1377)上进行验证。

除了上述步骤,我还根据https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/tutorials/mr-learning-base-02上的MRTK入门教程添加了基本的MRTK组件。我还从此示例https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/tutorials/mr-learning-asa-02#importing-the-tutorial-assets添加了一个简单的调试预制件,并从此示例https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_ManipulationHandler.html添加了操作处理程序。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...