Teleportsystem — MRTK2

Das Teleportiersystem ist ein Untersystem des MRTK, das die Teleportierung des Benutzers verarbeitet, wenn die Anwendung eine nicht transparente Anzeige verwendet. Bei AR-Erlebnissen (wie HoloLens) ist das Teleportiersystem nicht aktiv. Für immersive HMD-Umgebungen (OpenVR, WMR) kann das Teleportiersystem aktiviert werden.

Aktivieren und Deaktivieren

Das Teleportiersystem kann durch Umschalten des Kontrollkästchens in seinem Profil aktiviert oder deaktiviert werden. Dazu können Sie das MixedRealityToolkit-Objekt in der Szene auswählen, auf „Teleportieren“ klicken und dann das Kontrollkästchen „Teleportiersystem aktivieren“ umschalten.

Dies kann auch zur Laufzeit geschehen:

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

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

Ereignisse

Das Teleportiersystem macht Ereignisse über die Schnittstelle IMixedRealityTeleportHandler verfügbar, um Signale zum Beginn, Ende oder Abbruch von Teleportieraktionen zu geben. Weitere Informationen zur Funktionsweise der Ereignisse und der zugehörigen Nutzlast finden Sie in der verknüpften API-Dokumentation.

Verwendung

Registrieren für Teleportationsereignisse

Der Code unten zeigt, wie Sie ein MonoBehaviour-System erstellen, das nach Teleportationsereignissen lauscht. In diesem Code wird davon ausgegangen, dass das Teleportiersystem aktiviert ist.

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);
    }
}

Teleporting auf MRTK

Um mit einem Controller auf MR-Geräten mit Standardkonfigurationen teleportieren zu können, verwenden Sie den Daumenstick. Um mit gelenkten Händen teleportieren zu können, machen Sie eine Geste mit der Handfläche, die sich mit dem Index und dem Daumen nach außen hält, und schließen Sie den Teleport ab, indem Sie den Indexfinger koppeln. Informationen zum Teleportieren mit Eingabesimulation finden Sie in unserer aktualisierten Dokumentation zum Input Simulation Service.

Teleport Gesture