System teleportu — MRTK2

System teleportowania jest podsystemem mrTK, który obsługuje teleportowanie użytkownika, gdy aplikacja używa nieprzezroczystego wyświetlacza. W przypadku środowisk AR (takich jak HoloLens) system teleportacji nie jest aktywny. W przypadku immersyjnych środowisk HMD (OpenVR, WMR) można włączyć system teleportowania.

Włączanie i wyłączanie

System teleportowania można włączyć lub wyłączyć, przełączając pole wyboru w swoim profilu. Można to zrobić, wybierając obiekt MixedRealityToolkit w scenie, klikając pozycję "Teleport", a następnie przełączając pole wyboru "Włącz system teleportowania".

Można to również zrobić w czasie wykonywania:

void DisableTeleportSystem()
{
    CoreServices.TeleportSystem.Disable();
}

void EnableTeleportSystem()
{
    CoreServices.TeleportSystem.Enable();
}

Zdarzenia

System teleportowania uwidacznia zdarzenia za pośrednictwem interfejsu IMixedRealityTeleportHandler , aby zapewnić sygnały dotyczące rozpoczęcia, zakończenia lub anulowania akcji teleportu. Aby uzyskać więcej informacji na temat mechaniki zdarzeń i skojarzonego ładunku, zobacz dokumentację połączonego interfejsu API.

Użycie

Jak zarejestrować się w celu uzyskania zdarzeń teleportacji

Poniższy kod pokazuje, jak utworzyć monoBehaviour, który będzie nasłuchiwać zdarzeń teleportacji. W tym kodzie przyjęto założenie, że system teleportu jest włączony.

using Microsoft.MixedReality.Toolkit;
using Microsoft.MixedReality.Toolkit.Teleport;
using UnityEngine;

public class TeleportHandlerExample : MonoBehaviour, IMixedRealityTeleportHandler
{
    public void OnTeleportCanceled(TeleportEventData eventData)
    {
        Debug.Log("Teleport Cancelled");
    }

    public void OnTeleportCompleted(TeleportEventData eventData)
    {
        Debug.Log("Teleport Completed");
    }

    public void OnTeleportRequest(TeleportEventData eventData)
    {
        Debug.Log("Teleport Request");
    }

    public void OnTeleportStarted(TeleportEventData eventData)
    {
        Debug.Log("Teleport Started");
    }

    void OnEnable()
    {
        // This is the critical call that registers this class for events. Without this
        // class's IMixedRealityTeleportHandler interface will not be called.
        CoreServices.TeleportSystem.RegisterHandler<IMixedRealityTeleportHandler>(this);
    }

    void OnDisable()
    {
        // Unregistering when disabled is important, otherwise this class will continue
        // to receive teleportation events.
        CoreServices.TeleportSystem.UnregisterHandler<IMixedRealityTeleportHandler>(this);
    }
}

Teleportowanie na platformie MRTK

Aby teleportować z kontrolerem na urządzeniach MR z domyślnymi konfiguracjami, użyj szminki. Aby teleportować z przegubowymi rękami, wykonaj gest z dłonią skierowaną do indeksu i kciuka przyklejając się na zewnątrz, kończąc teleport, zwijając palec indeksu. Aby teleportować z symulacją wejściową, zapoznaj się z zaktualizowaną dokumentacją usługi symulacji danych wejściowych.

Gest teleportu