UnityでMRTK v2.5.1を導入する【HoloLens2】

#まえがき
2020年10月にMRKTがv2.5.1に更新されました．【[Releases](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases)】
v2.5.0からの変更点は[こちら](https://microsoft.github.io/MixedRealityToolkit-Unity/version/releases/2.5.0/Documentation/ReleaseNotes.html)．
個人的にはPackage Managerからの導入が可能になったのが気になったので今回はこちらを試していきたいと思います．

#本題

###機器概要
| 機器名 | バージョン |
| --- | --- |
| Windows10 | --- |
| Unity | 2019.3.2f.1 |
| MRTK | 2.5.1 |


###導入
以前の記事の[導入](https://qiita.com/T170521/items/8da9e6ad10e0c5f80d2d#%E5%B0%8E%E5%85%A5)を参考に設定する．

###手順
※詳しくは[公式ページ](https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/usingupm.html)に記載されています．

####1.projectの作成

####2.HoloLens2用の設定をする
以前の記事の[HoloLens2用に設定](https://qiita.com/T170521/items/8da9e6ad10e0c5f80d2d#2hololens2%E7%94%A8%E3%81%AB%E8%A8%AD%E5%AE%9A)を参考に設定する．


####3.パッケージの追加
projectを作成したらエクスプローラーを開き，以下のファイルを編集する．
`{projectフォルダ}/Packages/manifest.json `
追記する内容は以下の通り

```manifest.json
{
  "scopedRegistries": [
    {
      "name": "Microsoft Mixed Reality",
      "url": "https://pkgs.dev.azure.com/aipmr/MixedReality-Unity-Packages/_packaging/Unity-packages/npm/registry/",
      "scopes": [
        "com.microsoft.mixedreality",
        "com.microsoft.spatialaudio"
      ]
    }
  ],
  "dependencies": {
    "com.microsoft.mixedreality.toolkit.examples": "2.5.1",
    "com.microsoft.mixedreality.toolkit.foundation": "2.5.1",
    "com.microsoft.mixedreality.toolkit.tools": "2.5.1",
  {以下に他のパッケージのバージョン設定が続く}
}
```

もし他に`scopedRegistries`に他のパッケージ情報がある場合は以下のように記述する

```manifest.json
{
  "scopedRegistries": [
    {
      "name": "Microsoft Mixed Reality",
      "url": "https://pkgs.dev.azure.com/aipmr/MixedReality-Unity-Packages/_packaging/Unity-packages/npm/registry/",
      "scopes": [
        "com.microsoft.mixedreality",
        "com.microsoft.spatialaudio"
      ]
    }
  ],
  [
    {
      "name": "**************",
      "url": "*********************************",
      "scopes": [
        "************************",
      ]
    }
  ],
  "dependencies": {
   {パッケージのバージョン設定が続く}
  }
}
```

記述した後に`Window/Package Manager`を見ると追加されている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/17e27a1b-17ae-bf26-c08f-6a0989eac2a8.png)
Exsamplesから様々なDemoをImportすることもできる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/3159bc59-1afb-c267-9a88-1d178bb7f2c3.png)


導入できれば，MRTKの設定をするウィンドウが出てくるので，Applyを押す．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/74f8330e-3a64-649a-fcd9-5acf6b911f45.png)


####4.シーンを作成
まずはHoloLens2のカメラを導入する．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/afefff44-2a00-c391-d329-aae862a5f8aa.png)
Main Cameraが消えて下の2つが追加される．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/95b6f9ea-72d9-01e7-5f59-61a30fdc2e41.png)


次にボタンなどのToolを導入する.
`Mixed Reality ToolKit/Toolbox`を押すとMRTK Toolboxのウィンドウが出てくる．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/6e49cb72-f255-a9a9-5d4d-8ccf2f2afd3d.png)

これを利用することで簡単にobjectを配置することができる．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/2739c000-c827-68bd-035d-b4890492491a.png)
クリックするだけで任意のボタンなどを追加可能です．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/9ac6dd9d-bba6-3421-7f41-7718f7eb5d8d.png)

####実装例
適当にデモっぽいものを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/ed96bd45-9c55-a550-e350-e7053b4fcbe3.png)
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">MRTK v2.5.1でボタン置いてみた<a href="https://twitter.com/hashtag/MRTK?src=hash&amp;ref_src=twsrc%5Etfw">#MRTK</a> <a href="https://twitter.com/hashtag/Unity?src=hash&amp;ref_src=twsrc%5Etfw">#Unity</a> <a href="https://twitter.com/hashtag/HoloLens2?src=hash&amp;ref_src=twsrc%5Etfw">#HoloLens2</a> <a href="https://t.co/dAoN0KmZnj">pic.twitter.com/dAoN0KmZnj</a></p>&mdash; ゆーま (@sagirin262) <a href="https://twitter.com/sagirin262/status/1329301780849541120?ref_src=twsrc%5Etfw">November 19, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

###PS. アップグレード
以前のバージョンを使用しているプロジェクトのアップデート方法は[こちら](https://microsoft.github.io/MixedRealityToolkit-Unity/version/releases/2.5.0/Documentation/Updating.html)に解説されています．
削除によるエラーやアップグレードがうまくいっていないと以前の状態に戻すことができない場合があります．
【※プロジェクト自体のバックアップを取っておくとよい】

フォルダを削除する
・`MRTK/Core`
・`MRTK/Example`
・`MRTK/Extensions`

名前が異なる場合は以下を参照
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/cbbe251b-01ed-953c-f2da-2f7fb2cda7aa.png)

エラーでうまくいかないなら`MRTK`を削除して，新しいバージョンの`unitypackage`3つをImportし直してください．

#あとがき
以前通り`unitypackage`ファイルからの導入も可能です．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/4c266b0e-16c0-a688-6b49-271514e22c04.png)

[Installation　Guide](https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Installation.html)
DL先：[Releases - Github](https://github.com/Microsoft/MixedRealityToolkit-Unity/releases)
やり方は[以前の記事](https://qiita.com/T170521/items/8da9e6ad10e0c5f80d2d#4sample%E3%82%B7%E3%83%BC%E3%83%B3%E3%81%A7%E3%81%AE%E8%A8%AD%E5%AE%9A)を参考にしてください．