Вы можете сделать подход, аналогичный ответу на этот вопрос здесь .
Во-первых, отключите систему телепортации в 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
входное действие, которое отображается на одну из кнопок. Я использовал «Teleport Direction».