Teleport rendszer

A teleportációs rendszer az MRTK alrendszere, amely a felhasználó teleportálását kezeli, amikor az alkalmazás átlátszatlan kijelzőt használ. Az AR-élmények (például HoloLens) a teleportációs rendszer nem aktív. A modern HD-élmények (OpenVR, WMR) esetén engedélyezhető a teleportációs rendszer.

Engedélyezés és letiltás

A teleportációs rendszer a profilja jelölőnégyzetének be- és bekapcsolásán keresztül engedélyezhető vagy letiltható. Ehhez jelölje be a MixedRealityToolkit objektumot a jelenetben, kattintson a Teleport elemre, majd jelölje be a "Teleport rendszer engedélyezése" jelölőnégyzetet.

Ez futásidőben is meg lehet tenni:

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

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

Események

A teleportációs rendszer a felületen keresztül teszi elérhetővé az eseményeket, amelyek jelzik, hogy mikor kezdődnek, érnek véget vagy IMixedRealityTeleportHandler szakítják meg a teleportálást. Az események mechanikával és az ezekhez kapcsolódó hasznos adatokval kapcsolatos további részletekért tekintse meg a társított API-dokumentációt.

Használat

Regisztrálás teleportációs eseményekre

Az alábbi kód bemutatja, hogyan hozhat létre egy MonoBehaviour-t, amely a teleportációs eseményeket fogja figyelni. Ez a kód feltételezi, hogy a teleportációs rendszer engedélyezve van.

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

Teleportálás az MRTK-on

Az alapértelmezett konfigurációval konfigurált MR-eszközökön található vezérlővel való teleportáláshoz használja a ujjlenyomatot. Ha kézzel kell teleportálnia, egy kézmozdulatot kell tennie az indexszel felfelé irányulóan, és a lefelé mutató ujjlenyomattal felfelé haladva, és a teleportálást az indexavacs összecsukásával fejezi be. A bemeneti szimulációval való teleportáláshoz tekintse meg az Input Simulation Service frissített dokumentációját.

Teleportálás kézmozdulat