Hololens运动识别

3
我开始使用Hololens (第一代),现在需要识别眼镜是否移动(例如某人戴着它并旋转头部或向前走),还是保持静止(例如放在桌子上)。 有任何工具或库可以解决吗? 或者任何传感器数据的访问权限吗?
编辑:我拿到了 Microsoft 的示例应用程序,在 Unity 中构建后在 VS2017中运行。 然后我找到了获取相机位置的代码:
float quaternionX = Camera.main.transform.rotation.x;

但它总是抛出System.AccessViolationException异常。
编辑2:
好的,看起来我在错误的线程中调用了Camera。如果我将相同的调用放在SpatialMappingObserver.Update()内(这是Microsoft示例的一部分),它可以正常工作。我想知道,为什么VS2017中的异常信息不够清晰。

你在使用Unity吗?检测用户是否移动应该很简单,只需检查相机是否移动(即查看其变换)。 - Jethro
1个回答

2

由于您没有提供太多信息,而我也不知道您正在使用什么,因此我将分享我的想法,即如何在我的项目中完成。因此,我正在使用最新的HoloToolkit(有些人称其为mrtk,不是v1也不是v2)和Unity LTS 2017。在场景中我有一个相机,它代表了Hololens,所以您可以访问它的变换。


请看我的编辑,它总是给我一个“System.AccessViolationException”异常。 - Alexander Tumanin
你必须知道,微软的文档是最烂的。那里面的东西都不起作用了,而且已经过时了。所以不要使用/阅读/采用那里的任何东西。他们所谈论的类/函数/结构体已经不存在了。你会使用Unity吗?如果不是,我想你可以尝试这个代码:https://github.com/Microsoft/MixedRealityToolkit。如果是,就使用这个:https://github.com/Microsoft/MixedRealityToolkit-Unity(这是我使用的)。 - Perazim
是的,我使用 MixedRealityToolkit-Unity。示例应用程序的工作效果也很好。但是如果我添加 Camera.main.transform.rotation.x,就会出现 System.AccessViolationException - Alexander Tumanin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接