如何使用 Hololens2 手部跟踪数据跟踪玩家正在与之交互的物理对象的 Unity 位置?

How do I track the Unity position of physical objects the player is interacting with using Hololens2 hand tracking data?

基本上我正在使用 Hololens2 和 Unity 开发混合现实体验,其中玩家有几个他们需要与之交互的物理对象,以及虚拟对象。其中一个物理对象是一个枪支控制器,它有一个 IMU 来检测加速度和方向。我的主要挑战是:如何在 Unity 中获取物理对象的位置,以便准确地向虚拟敌人发射虚拟射弹?

我目前的想法是让玩家在游戏开始时将物理武器放置在虚拟边界框内。然后,当玩家拿起物理控制器时,我可以通过与玩家手的碰撞来跟踪虚拟盒子的位置。 OnCollisionEnter 或类似的方法是否适用于玩家的手? (见附图)

我也在研究使用空间感知/图像识别/姿势估计来完成这项任务,以及研究使用跟踪基站来确定物体位置(类似于 HTC Vive / Oculus Rift) .

在此非常感谢任何建议、资源和帮助。谢谢!

编辑更新 2020 年 11 月 30 日: Hernando 在下面评论建议二维码,假设在这个项目中我们不允许使用二维码,我们想要尽可能精确的方向数据。谢谢埃尔南多!

控制器是否允许粘贴多个二维码?如果允许,我们建议您使用 QRCode tracking to assist in locating your controller. If you prefer to use image recognition, object detection, or other technologies, it needs Azure service or some third-party library, more information please see:Computer Vision documentation

对于定位对象,QR码肯定是推荐使用HL2设备快速找到的。我在多个场所也看到了 QR 方法,用于 VR LBE 体验,就像这里描述的那样。二维码就在设备的顶部。

否则,如果有问题的控制器支持蓝牙,则可以与设备配对,如果设备有位置信息,则可以传输它所在的位置。根据我从以上所有内容中看到的,这将是一个自定义解决方案,并且高度依赖于控制器的能力,如果 QR 码不在等式中。我目睹了一些控制器解决方案首先启动用户体验来做一些事情,比如触摸地板以获得初始参考点。或者做一些事情,比如总是在现实世界中的特定位置拿起枪,就像一些基于本地的体验在开始之前所做的那样。

祝项目顺利,这只是我在使用 VR 系统时的建议