MRDesignLabs のサンプルを Unity 2017.2.0f3 用に移行する
※ これは 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 に対応するのを待った方がよさそうですが、とりあえずこれで動きました!