Использование джойстика (телетраспорта) контроллера Windows Mixed Reality в Unity - PullRequest
0 голосов
/ 12 мая 2019

Я использую MRTK SDK для проекта Unity с Windows Moxed Reality Headset.Мне нужно постепенно двигаться в трехмерном пространстве (вперед, назад, вверх, вниз, влево и вправо) с помощью джойстика (телетранспорт), который находится на контроллере.Мне нужно делать плавные и плавные движения, а не прыгать.Кто-нибудь может помочь мне понять, как я могу получить это?Спасибо, Лука

1 Ответ

0 голосов
/ 15 мая 2019

Вы можете сделать подход, аналогичный ответу на этот вопрос здесь .

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...