0

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

4

1 回答 1

0

您可以在此处执行与此问题的答案类似的方法。

首先,关闭 MRTK 中的瞬移系统,这样按下摇杆时就看不到瞬移抛物线:

在场景中选择 MRTK 对象:

在此处输入图像描述

然后关闭传送系统:

在此处输入图像描述

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

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映射到其中一个拇指杆的输入操作。我使用了“传送方向”。

在此处输入图像描述

于 2019-05-15T00:32:11.373 回答