【问题标题】:How to move an object with Motion Controller如何使用运动控制器移动对象
【发布时间】:2019-04-12 18:29:13
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: unity3d mrtk


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 哇..酷!我得检查一下。如果我们想在不使用这种特殊情况的情况下移动游戏对象,您有什么建议吗?
    • 在多次摆弄它之后(那里有很多选择!)这正是我所需要的!非常感谢!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      相关资源
      最近更新 更多