Bagikan melalui


Sistem teleportasi — MRTK2

Sistem teleportasi adalah sub-sistem MRTK yang menangani teleportasi pengguna saat aplikasi menggunakan tampilan buram. Untuk pengalaman AR (seperti HoloLens), sistem teleportasi tidak aktif. Untuk pengalaman HMD imersif (OpenVR, WMR) sistem teleportasi dapat diaktifkan.

Mengaktifkan dan menonaktifkan

Sistem teleportasi dapat diaktifkan atau dinonaktifkan dengan mengaktifkan kotak centang di profilnya. Ini dapat dilakukan dengan memilih objek MixedRealityToolkit di adegan, mengklik "Teleport" lalu beralih ke kotak centang "Aktifkan Sistem Teleport".

Ini juga dapat dilakukan pada runtime:

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

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

Acara

Sistem teleportasi mengekspos peristiwa melalui IMixedRealityTeleportHandler antarmuka untuk memberikan sinyal saat tindakan teleportasi dimulai, diakhbungi, atau dibatalkan. Lihat dokumentasi API yang ditautkan untuk detail selengkapnya tentang mekanisme peristiwa dan payload terkait.

Penggunaan

Cara mendaftar untuk peristiwa teleportasi

Kode di bawah ini menunjukkan cara membuat MonoBehaviour yang akan mendengarkan peristiwa teleportasi. Kode ini mengasumsikan bahwa sistem teleportasi diaktifkan.

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

Teleportasi di MRTK

Untuk melakukan teleportasi dengan pengontrol pada perangkat MR dengan konfigurasi default, gunakan thumbstick. Untuk melakukan teleportasi dengan tangan artikulasi, buat gerakan dengan telapak tangan menghadap ke atas dengan indeks dan jempol yang menjulurkan ke luar, menyelesaikan teleport dengan meringkuk jari telunjuk. Untuk melakukan teleportasi dengan simulasi input, silakan lihat dokumentasi Layanan Simulasi Input kami yang diperbarui.

Gerakan Teleportasi