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

Unity3d 如何使用运动控制器移动对象,unity3d,mrtk,Unity3d,Mrtk,使用MRTK V2和c#脚本,我需要抓取并在相机周围移动一个对象(比如一个立方体),与抓取对象的距离相同,并且立方体最初面向相机,以保持垂直于相机。我不知道我是否清楚 我还没有发现一些“抓取”的例子是MRTK v2,因为在最初的MRTK中有,所以我想知道如何实际编程。我想影响对象的变换,而不仅仅是使用“可交互”脚本 我已经能够在运动开始和结束时读取控制器的变换,但我想知道如何影响目标对象的变换,使其与控制器保持固定距离,并与控制器保持垂直(选择的面仍面向摄影机) 我尝试过影响目标对象的变换并寻找

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

我还没有发现一些“抓取”的例子是MRTK v2,因为在最初的MRTK中有,所以我想知道如何实际编程。我想影响对象的变换,而不仅仅是使用“可交互”脚本

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

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

你知道我可以从哪里开始看吗?

你可以给你想要移动的对象添加一个。以下是一些示例步骤:

  • 将长方体碰撞器添加到要移动的对象
  • 在对象中添加操纵处理程序
  • 要使对象保持其相对于您的原始旋转,请将“单手旋转模式远”设置为“保持对用户的旋转”
  • 如果您还希望能够直接抓取对象(这适用于VR和HoloLens 2),则向对象添加NearInteractionGrabbable组件
  • 下面是一个示例配置,我必须使立方体可移动:

    有关如何使用操纵处理程序的示例,请参见位于
    Assets\MixedRealityToolkit.Examples\Demos\handstracking\Scenes\HandInteractionExamples.unity的HandInteractionExamples场景中的月球模块或奶酪对象。您可以向要移动的对象添加一个。以下是一些示例步骤:

  • 将长方体碰撞器添加到要移动的对象
  • 在对象中添加操纵处理程序
  • 要使对象保持其相对于您的原始旋转,请将“单手旋转模式远”设置为“保持对用户的旋转”
  • 如果您还希望能够直接抓取对象(这适用于VR和HoloLens 2),则向对象添加NearInteractionGrabbable组件
  • 下面是一个示例配置,我必须使立方体可移动:


    有关如何使用操纵处理程序的示例,请参见位于
    Assets\MixedRealityToolkit.Examples\Demos\handstracking\Scenes\handsinteractionexamples.unity的HandInteractionExamples场景中的月球舱或奶酪对象。除了上面Julia的答案之外,还可以进一步满足您的需求:“…因此它与控制器保持固定距离…”将“移动限制”设置为“与头部的固定距离”。我知道这并不能完全满足您所述的要求,但可能已经足够接近了


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

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


    如果您真的需要满足所有规定的要求,您可能需要考虑实施一个定制的“解算器”。

    Woah。。酷!我得检查一下。如果我们想在不使用这种特殊情况下移动游戏对象,你有什么建议吗?在我摆弄它之后(有很多选项!),这正是我需要的!非常感谢!哇。。酷!我得检查一下。如果我们想在不使用这种特殊情况下移动游戏对象,你有什么建议吗?在我摆弄它之后(有很多选项!),这正是我需要的!非常感谢!