Teleporteringssystem – MRTK2

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

Aktivera och inaktivera

Teleporteringssystemet kan aktiveras eller inaktiveras genom att markera kryssrutan i dess profil. Det kan du göra genom att markera mixedrealityToolkit-objektet i scenen, klicka på "Teleportera" och sedan växla kryssrutan "Aktivera teleporteringssystem".

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 IMixedRealityTeleportHandler gränssnittet för att tillhandahålla signaler om när teleporteringsåtgärder börjar, slutar eller avbryts. Se den länkade API-dokumentationen för mer information om mekaniken för händelserna och deras associerade nyttolast.

Användning

Så här registrerar du 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 teleportsystemet ä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 teleporta med en styrenhet på MR-enheter med standardkonfigurationer använder du tumsticken. För att teleportera med ledade händer, gör en gest med handflatan vänd uppåt med indexet och tummen som sticker utåt, slutföra teleporteringen genom att curla pekfingret. Information om teleportering med indatasimulering finns i vår uppdaterade dokumentation om indatasimuleringstjänsten.

Teleport-gest