如何使用运动控制器移动对象

时间:2019-04-10 14:03:49

标签: unity3d mrtk

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

我还没有找到像原始MRTK一样的“抢劫”示例MRTK v2,所以我想知道如何对它进行编程。我想影响对象的变换,不仅要使用“可交互”脚本。

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

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

有什么想法可以在哪里开始寻找?

2 个答案:

答案 0 :(得分:2)

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

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

这是我必须使多维数据集可移动的示例配置:

enter image description here

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

答案 1 :(得分:0)

除了上述Julia的答案之外,要进一步满足您的要求:“ ...因此它与控制器保持固定的距离...”,请将“运动时的约束”设置为“与头部的固定距离”。 。我知道这不能完全满足您所说的要求,但可能足够接近。

如果您确实需要满足所有陈述的要求,则可能需要考虑实现自定义“ Solver”。