Sistema de teletransporte — MRTK2
O sistema de teletransporte é um subsistema do MRTK que manipula o teletransporte do usuário quando o aplicativo está usando uma exibição opaca. Em experiências de RA (como o HoloLens), o sistema de teletransporte não está ativo. Em experiências imersivas de HMD (OpenVR e WMR), o sistema de teletransporte pode ser habilitado.
Como habilitar e desabilitar o sistema
O sistema de teletransporte pode ser habilitado ou desabilitado marcando/desmarcando a caixa de seleção no respectivo perfil. É possível executar isso selecionando o objeto MixedRealityToolkit na cena, clicando em "Teletransportar" e marcando/desmarcando a caixa de seleção "Habilitar Sistema de Teletransporte".
Também é possível executar isso no runtime:
void DisableTeleportSystem()
{
CoreServices.TeleportSystem.Disable();
}
void EnableTeleportSystem()
{
CoreServices.TeleportSystem.Enable();
}
Eventos
O sistema de teletransporte expõe eventos por meio da interface IMixedRealityTeleportHandler
para fornecer sinais quando as ações de teletransporte começam, terminam ou são canceladas.
Confira a documentação da API vinculada para obter mais detalhes sobre a mecânica dos eventos e o conteúdo associado.
Uso
Como se registrar em eventos de teletransporte
O código a seguir mostrará de que modo criar um MonoBehaviour que vai escutar eventos de teletransporte. Esse código pressupõe que o 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 no MRTK
Para teletransportar com um controlador em dispositivos MR com configurações padrão, use o thumbstick. Para teletransportar com as mãos articuladas, faça um gesto com a palma da mão voltada para cima com o índice e o polegar para fora, completando o teletransporte enrolando o dedo indicador. Para teletransportar com a simulação de entrada, consulte nossa documentação atualizada do Serviço de Simulação de Entrada.