Freigeben über


Teleportsystem — MRTK2

Das Teleportsystem ist ein Untersystem von MRTK, das die Teleportierung des Benutzers übernimmt, wenn die Anwendung eine undurchsichtige 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);
    }
}

Teleportieren auf MRTK

Zum Teleportieren mit einem Controller auf MR-Geräten mit Standardkonfigurationen verwenden Sie den Fingerabdruckstick. Um mit handgelenkten Händen zu teleportieren, machen Sie eine Geste, wobei Ihre Handfläche mit dem Index nach oben gerichtet ist und der Daumen nach außen heftet, und schließen Sie die Teleportierung durch Curling des Zeigefingers ab. Informationen zum Teleportieren mit Eingabesimulation finden Sie in unserer aktualisierten Dokumentation zum Input Simulation Service.

Teleportgeste