Mixed Reality Toolkit - UnityのTips - HoloLensとImmersive HMDで実行時に処理を変える方法

Mixed Reality CameraはHoloLensとImmersive HMDで処理を切り替えています。

最新のMRTK-UnityからはHoloLensとImmersive HMDいずれのアプリケーションでも同一ライブラリで開発が可能です。動作時にも特別なことをしなくてもそれぞれに応じた制御をしています。例えば、カメラオブジェクトは、HoloLensであれば「SolidColorにして黒で塗りつぶす」、Immersive HMDであれば「SkyBox等背景がある状態にする」と内部で自動的に判定して切替えてくれます。

自分の実装も切替えたいとき

MRTKのようにHoloLensとImmersive HMDで処理を変えたい場合に同じ仕掛けが使えないかと思い調べてみたところMixedRealityCameraManagerクラスのCurrentDisplayTypeプロパティをチェックすればHoloLens系なのかImmersive系なのかが実行時にわかります。

if(MixedRealityCameraManager.Instance.CurrentDisplayType == MixedRealityCameraManager.DisplayType.Opaque)
{
    //Immersiveの処理
}

if(MixedRealityCameraManager.Instance.CurrentDisplayType == MixedRealityCameraManager.DisplayType.Transparent)
{
    //HoloLensの処理
}

MixedRealityCameraManagerは「MixedRealityCamera」のコンポーネントとして登録されているので初期値の変更などはInspectorから可能です。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.