Teleporteringssystem

Teleporteringssystemet är ett undersystem i MRTK som hanterar teleportering av användaren när programmet använder en täckande skärm. För AR-upplevelser (HoloLens) är teleporteringssystemet inte aktivt. För integrerande HMD-upplevelser (OpenVR, WMR) kan teleporteringssystemet aktiveras.

Aktivera och inaktivera

Du kan aktivera eller inaktivera teleporteringssystemet genom att ändra kryssrutan i profilen. Detta kan göras genom att markera mixedRealityToolkit-objektet i scenen, klicka på "Teleport" och sedan växla kryssrutan "Aktivera Teleport System".

Detta kan också göras vid körning:

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

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

Händelser

Teleporteringssystemet exponerar händelser via gränssnittet IMixedRealityTeleportHandler för att ge signaler om när teleporteringsåtgärder börjar, avslutas eller avbryts. Se den länkade API-dokumentationen för mer information om mekanismerna för händelserna och deras associerade nyttolast.

Användning

Registrera dig för teleporteringshändelser

Koden nedan visar hur du skapar en MonoBehaviour som lyssnar efter teleporteringshändelser. Den här koden förutsätter att teleporteringssystemet är aktiverat.

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

Teleportering på MRTK

Om du vill teleportera med en styrenhet på MR-enheter med standardkonfigurationer använder du tumstickan. Om du vill teleportera med formulerade händer gör du en gest med din rullning uppåt med indexet och tumme som håller sig utåt och slutför teleporteringen genom att curla indexets finger. Om du vill teleportera med indatasimulering kan du läsa vår uppdaterade dokumentation om tjänsten för indatasimulering.

Teleporteringsgest