テレポート システム — MRTK2
テレポート システムは MRTK のサブシステムであり、アプリケーションが不透明なディスプレイを使用しているときにユーザーのテレポートを処理します。 AR エクスペリエンス (HoloLens 同様) の場合、テレポート システムは有効ではありません。 イマーシブ HMD エクスペリエンス (OpenVR、WMR) では、テレポート システムを有効にできます。
有効化と無効化
テレポート システムは、プロファイルでチェックボックスのオンとオフを切り替えることで、有効または無効にすることができます。 これを行うには、シーンで MixedRealityToolkit オブジェクトを選択し、[テレポート] をクリックし、[Enable Teleport System](テレポート システムを有効にする) チェックボックスのオン/オフを切り替えます。
これは実行時にも行うことができます。
void DisableTeleportSystem()
{
CoreServices.TeleportSystem.Disable();
}
void EnableTeleportSystem()
{
CoreServices.TeleportSystem.Enable();
}
イベント
テレポート システムでは、IMixedRealityTeleportHandler
インターフェイスを介してイベントが公開され、テレポート アクションが開始、終了、または取り消されたときにシグナルが出されます。
イベントのメカニズムとそれらに関連付けられたペイロードの詳細については、リンクされた API ドキュメントを参照してください。
使用
テレポート イベントに登録する方法
次のコードは、テレポート イベントをリッスンする MonoBehaviour を作成する方法を示しています。 このコードは、テレポート システムが有効になっていることを前提としています。
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);
}
}
MRTK でのテレポート
初期設定の MR デバイスでコントローラーを使用してテレポートするには、スティックを使います。 多関節ハンドを使用してテレポートするには、手のひらを上に向け、人差し指と親指を外側に突き出すようなジェスチャをしてから、人差し指を丸めてテレポートを行います。 入力シミュレーションを使用してテレポートするには、更新された入力シミュレーション サービスのドキュメントを参照してください。