我正在将MRTK SDK用于带有Windows Moxed Reality耳机的Unity项目。 我需要使用控制器上的操纵杆(teletrasport)在3D空间中(向前,向后,向上,向下,向左和向右)逐渐移动。 我需要做一个逐渐流畅的动作,而不是跳跃。 任何人都可以帮助我了解我如何获得它? 谢谢 卢卡
答案 0 :(得分:0)
您可以执行类似于the answer from this question here的方法。
首先,关闭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
。我使用了“传送方向”。