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