0

使用 MRTK V2 和 c# 脚本,我需要在相机周围抓取并移动一个对象(比如一个立方体),其距离与被抓取的距离相同,并且立方体最初面向相机以保持垂直于相机。不知道我说清楚没...

我还没有找到一些“抓取”的例子是 MRTK v2,就像原来的 MRTK 一样,所以我想知道如何实际编程。我想影响对象的变换,而不仅仅是使用“可交互”脚本。

我已经能够在运动开始和结束时读取控制器的变换,但我想知道如何影响目标对象的变换,使其与控制器保持固定距离并保持垂直控制器(选择的脸仍然面向相机)。

我尝试影响目标对象的变换并寻找正确的计算,但没有成功。

知道我可以从哪里开始寻找吗?

4

2 回答 2

2

您可以将ManipulationHandler添加到要移动的对象。以下是一些示例步骤:

  1. 将 Box Collider 添加到要移动的对象。
  2. 添加一个 ManipulationHandler 你的对象
  3. 要使对象保持其相对于您的原始旋转,请将“单手旋转模式远”设置为“保持对用户的旋转”。
  4. 如果您还希望能够直接抓取对象(这适用于 VR 和 HoloLens 2),则将 NearInteractionGrabbable 组件添加到您的对象。

这是我必须使立方体可移动的示例配置:

在此处输入图像描述

有关如何使用 ManipulationHandler 的示例,请参阅 HandInteractionExamples 场景中的月球模块或奶酪对象Assets\MixedRealityToolkit.Examples\Demos\HandTracking\Scenes\HandInteractionExamples.unity

于 2019-04-11T16:25:38.210 回答
0

除了上面 Julia 的回答之外,为了更接近满足您的要求:“......所以它与控制器保持固定距离......”将“运动约束”设置为“与头部的固定距离”。我知道这并不能完全满足您提出的要求,但它可能已经足够接近了。

如果您真的需要满足所有声明的要求,您可能需要考虑实施自定义“求解器”。

于 2019-04-12T10:29:13.817 回答