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.