在Unity中使用Windows Mixed Reality控制器的操纵杆(teletrasport)

时间:2019-05-12 18:48:50

标签: mrtk

我正在将MRTK SDK用于带有Windows Moxed Reality耳机的Unity项目。 我需要使用控制器上的操纵杆(teletrasport)在3D空间中(向前,向后,向上,向下,向左和向右)逐渐移动。 我需要做一个逐渐流畅的动作,而不是跳跃。 任何人都可以帮助我了解我如何获得它? 谢谢 卢卡

1 个答案:

答案 0 :(得分:0)

您可以执行类似于the answer from this question here的方法。

首先,关闭MRTK中的远距传送系统,以免在按下指尖时看不到远距传送抛物线:

在场景中选择MRTK对象:

enter image description here

然后关闭传送系统:

enter image description here

最后,将以下组件附加到场景内容根目录,以根据输入在摄像机播放空间中移动内容。这里的关键思想是您不想移动相机,而是想移动周围的世界。

public class ThumbstickMover : InputSystemGlobalListener, IMixedRealityInputHandler<Vector2>
{
    public MixedRealityInputAction moveAction;
    public float speed = 1.0f;

    public void OnInputChanged(InputEventData<Vector2> eventData)
    {
        if (eventData.MixedRealityInputAction == moveAction)
        {
            Vector3 localDelta = speed * (Vector3)eventData.InputData;
            transform.position = transform.position + transform.rotation * localDelta;
        }
    }
}

为此,您需要将映射到其中一个指尖的输入动作设置为moveAction。我使用了“传送方向”。

enter image description here