System teleportowania

System teleportacji to pod system mrTK, który obsługuje osuwnianie użytkownika, gdy aplikacja używa nieprzezroczystego ekranu. W przypadku doświadczeń z HoloLens (takich jak HoloLens) system teleportacji nie jest aktywny. W przypadku immersywnych środowiska HMD (OpenVR, WMR) można włączyć system teleportacji.

Włączanie i wyłączanie

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

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, aby zapewnić sygnały o rozpoczęciu, zakończeniu lub anulowaniu akcji IMixedRealityTeleportHandler teleportowania. Zobacz dokumentację połączonego interfejsu API, aby uzyskać więcej informacji na temat mechaniki zdarzeń i skojarzonego z nimi ładunku.

Użycie

Jak zarejestrować się w celu rejestrowania zdarzeń z cykadami

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 teleportacji 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 mrtk

Aby przesunić się za pomocą kontrolera na urządzeniach MR z konfiguracjami domyślnymi, użyj przycisku thumbstick. Aby przechylić się przy użyciu wyrazicznie ręki, należy wykonać gest z pałką skierowaną do góry z indeksem i kciukiem wsadowym na zewnątrz, aby dokończyć pojedyńczenie przez zwinięcie palca indeksu. Aby uzyskać informacje na temat symulacji danych wejściowych, zobacz zaktualizowaną dokumentację usługi Input Simulation Service.

Gest teleportacji