Sistema de teletransporte : MRTK2

El sistema de teletransporte es un subsistema de MRTK que controla el teletransporte al usuario cuando la aplicación usa una pantalla opaca. En el caso de las experiencias de AR (como HoloLens), el sistema de teletransporte no está activo. Para disfrutar de experiencias de HMD envolventes (OpenVR, WMR), se puede habilitar el sistema de teletransporte.

Habilitación y deshabilitación

Para habilitar o deshabilitar el sistema de teletransporte, puede activar o desactivar la casilla en su perfil. Para ello, seleccione el objeto MixedRealityToolkit en la escena, haga clic en "Teletransportar" y, a continuación, active la casilla "Enable Teleport System" (Habilitar el sistema de teletransporte).

Esto también puede hacerse en el entorno en tiempo de ejecución:

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

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

Eventos

El sistema de teletransporte expone eventos a través de la interfaz IMixedRealityTeleportHandler para proporcionar señales de cuándo comienzan, finalizan o se cancelan las acciones de teletransporte. Consulte la documentación vinculada sobre la API para obtener más detalles sobre la mecánica de los eventos y su carga asociada.

Uso

Registro de eventos de teletransporte

El código siguiente muestra cómo crear una clase MonoBehaviour que escuchará los eventos de teletransporte. En este código se da por supuesto que el sistema de teletransporte está habilitado.

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

Teletransporte en MRTK

Para teletransportar con un controlador en dispositivos de MR con configuraciones predeterminadas, use el stick digital. Para teletransportar con las manos articuladas, haz un gesto con la palma hacia arriba con el índice y el pulgar pegando hacia afuera, completando la teletransporte escribiendo el dedo índice. Para teletransportar con simulación de entrada, consulte nuestra documentación actualizada del Servicio de simulación de entrada.

Gesto de teletransporte