※ これは 2017/10/21 MixedRealityToolkit-Unity for Unity 2017.2.0f3 時点の情報です
最新版では動作が異なる可能性がありますのでご注意ください
そろそろ HoloLens 用の UI を追加していきたいところ・・・というわけで Microsoft の HoloLens チームが作っている MRDesignLab のサンプルを動かしてみたいと思います
MRDesignLab のサンプルは UI コンポーネントやその実装サンプルが含まれているので手っ取り早く UI を作りたい場合は便利です・・・が、まだ Unity 2017.1 用みたいなので Unity 2017.2.0f3 でも動くようにしてみたい
とりあえず下記2つの各リポジトリからソースファイルをダウンロードしておきます


MRDesignLabs_Unity の zip の方を解凍したら、中の MRDesignLabs_Unity/DesignLabs_Unity_Examples/Assets/MRDesignLab のフォルダを開きます

MRDesignLabs_Unity_Tools の圧縮ファイルの中身から HUX フォルダをこの MRDesign フォルダにコピーします
この MRDesignLabs_Unity/DesignLabs_Unity_Examples ディレクトリを Unity 2017.2.0f3 の Editor で開きます
途中 Unity のバージョンが違う、上書きしてもよいか、バックアップとったかなどといわれますが気にせず「Continue」、「I Made a Backup, Go Ahead!」を選びます

UnityEditor が開いたらコンパイルエラーは置いといて Assets/MRDL_ControlsExamples/Scenes/InteractableObject_Examples のシーンを開きます

さてここからが本番
Assets/MRDesignLab/HUX/Scripts/Interaction/InteractionManager.cs ファイルを Visual Studio で開き、下記の表の通り文字列置換します
| 置換前 | 置換後 |
|---|---|
| InteractionManager.SourcePressed | InteractionManager.InteractionSourcePressedLegacy |
| InteractionManager.SourceReleased | InteractionManager.InteractionSourceReleasedLegacy |
Visual Studio 上で Ctrl+H で一括置換用ダイアログを開いて行うのがおすすめです
さらに Mixed Reality Toolkit を以前投稿したような感じで入れ替えます
まずは Assets/HoloToolkit のディレクトリを丸ごと削除!

下記の MixedRealityToolkit-Unity for Unity 2017.2.1 の .unitypackage をダウンロードしてインポート

その後フォントをダウンロードしてとのダイアログが表示されるので「Click here to download font」ボタンから圧縮ファイルをダウンロードします

解凍後、中の .ttf ファイルを Assets/MRDL_ControlsExample/Fonts ディレクトリにコピーします

コピーが終わったら元のダイアログの「Click here to view button profile」ボタンを押下し Inspector パネル状に表示されるペインから「Auto-assign 'HoloLens MDL2 Symbols' font」ボタンを押下して設定します

このあと Mixed Reality Toolkit の Configure メニューの Apply Mixed Reality Project Settings をするとまた大量のコンパイルエラー!


Assets/MRDesignLab/HUX/Scripts/Input/InputSourceHands.cs ファイルを Visual Studio で開き、下記の表の通り文字列置換します
| 置換前 | 置換後 |
|---|---|
| InteractionManager.SourcePressed | InteractionManager.InteractionSourcePressedLegacy |
| InteractionManager.SourceReleased | InteractionManager.InteractionSourceReleasedLegacy |
| InteractionManager.SourceDetected | InteractionManager.InteractionSourceDetectedLegacy |
| InteractionManager.SourceLost | InteractionManager.InteractionSourceLostLegacy |
| InteractionManager.SourceUpdated | InteractionManager.InteractionSourceUpdatedLegacy |
| .location.TryGetPosition | .sourcePose.TryGetPosition |
| .location.TryGetVelocity | .sourcePose.TryGetVelocity |
Assets/MRDesignLab/HUX/Scripts/Spatial/Planes/SurfacePlaneManager.cs ファイルを Visual Studio で開き、下記の表の通り文字列置換します
| 置換前 | 置換後 |
|---|---|
| UnityEngine.VR. | UnityEngine.XR. |
Assets/MRDesignLab/HUX/Scripts/Spatial/PointOfReferenceManager.cs ファイルを Visual Studio で開き、下記の表の通り文字列置換します
| 置換前 | 置換後 |
|---|---|
| WorldAnchorStore. | UnityEngine.XR.WSA.Persistence.WorldAnchorStore |
本格的に利用するのは MRDesignLab が正式に Mixed Reality Toolkit に対応するのを待った方がよさそうですが、とりあえずこれで動きました!
