Sistema de teletransporte

O sistema de teletransporte é um subsistema do MRTK que trata o usuário quando o aplicativo está usando uma exibição opaca. Para experiências de RA (como HoloLens), o sistema de transporte não está ativo. Para experiências de HMD imersivas (OpenVR, WMR), o sistema de teletransporte pode ser habilitado.

Habilitando e desabilitando

O sistema de teletransporte pode ser habilitado ou desabilitado ativando a caixa de seleção em seu perfil. Isso pode ser feito selecionando o objeto MixedRealityToolkit na cena, clicando em "Transportar" e, em seguida, ativando a caixa de seleção "Habilitar Sistema DeTransportar".

Isso também pode ser feito em runtime:

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

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

Eventos

O sistema de teletransporte expõe eventos por meio da interface para fornecer sinais sobre quando as ações IMixedRealityTeleportHandler de teletransporte começam, terminam ou são canceladas. Consulte a documentação da API vinculada para obter mais detalhes sobre a mecânica dos eventos e sua carga associada.

Uso

Como se registrar para eventos de teletransporte

O código a seguir mostra como criar um MonoBehaviour que escutará eventos de teletransportação. Esse código pressuporta que o sistema de transporte 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 no MRTK

Para usar um controlador em dispositivos MR com configurações padrão, use o thumbstick. Para fazer um gesto com as mãos articuladas, faça um gesto com a mão voltada para cima com o índice e o polegar para fora, concluindo o anel ondulando o dedo indicador. Para fazer a simulação de entrada, confira nossa documentação atualizada do Serviço de Simulação de Entrada.

Gesto de Teletransporte