Teleport rendszer – MRTK2

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

Engedélyezés és letiltás

A teleportrendszer a profiljában lévő jelölőnégyzet bejelölésével engedélyezhető vagy letiltható. Ehhez jelölje be a mixedRealityToolkit objektumot a jelenetben, kattintson a "Teleport" elemre, majd állítsa be a "Teleport rendszer engedélyezése" jelölőnégyzetet.

Ez futásidőben is elvégezhető:

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

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

esemény

A teleportrendszer eseményeket tesz elérhetővé a IMixedRealityTeleportHandler felületen keresztül, hogy jelezhesse, mikor kezdődnek, fejeződnek be vagy szakadnak meg a teleportműveletek. Az események mechanikával és a kapcsolódó hasznos adatokkal kapcsolatos további részletekért tekintse meg a csatolt API-dokumentációt.

Használat

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

Az alábbi kód bemutatja, hogyan hozhat létre olyan MonoBehaviourt, amely figyeli a teleportálási eseményeket. Ez a kód feltételezi, hogy a teleportrendszer 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-n

Ha az alapértelmezett konfigurációval rendelkező MR-eszközökön lévő vezérlővel szeretne teleportálni, használja a hüvelykujját. Ahhoz, hogy a teleport csuklós kézzel, hogy egy kézmozdulat a tenyérrel szemben felfelé az index és a hüvelykujj kifelé ragadt, befejezve a teleport a curling az index ujját. A bemeneti szimulációval történő teleportáláshoz tekintse meg az Input Simulation Service frissített dokumentációját.

Teleport kézmozdulat