【Unity 2020】MRTK 2.6.0の導入

#まえがき
Unityの2020バージョンでMRTKを導入しようとしたら少し変更されているところがあったので，記述しておく．
ついでに新しいバージョンのMRTKも導入してみる．
[公式ページ](https://docs.microsoft.com/en-us/windows/mixed-reality/)も一新されています．

P.S.たらたらしてたら最新バージョン2.7.0がでてしまった．😅

#本題

###機器概要
| 機器名 | バージョン |
| --- | --- |
| Windows10 | --- |
| HoloLens2 | --- |
| Unity | 2020.3.11f.1 (LTS)|
| MRTK | 2.6.0 |
**MRTKの動作要件**
Unity Hubでユニバーサル Windows プラットフォーム ビルド サポート モジュールが追加された
Unityは2020 LTS(現在 2020.3.x)または Unity 2019 LTS (現在 2019.4.x) 

Unityでアプリケーションの作成，ビルド
VisualStadioでHoloLens2にビルド(書き込み)という流れ．

###導入
※公式ページの[MRTKチュートリアル](https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/tutorials/mr-learning-base-01)をもとに進めていきます．
<sammary>以前の記事の[導入](https://qiita.com/T170521/items/8da9e6ad10e0c5f80d2d#%E5%B0%8E%E5%85%A5)でも設定している．
>※Unityは導入されている前提とします
>※Visual Stadioで必要なモジュールは以下の通りです
>Unityのオプションはチェック外してください
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/d53aae51-62aa-f9b1-a559-9ac71d70b545.png)
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/ae3e92ac-e5bf-db44-bb9d-951db16fc2a7.png)
>
>#####Universal Windows Platformモジュール
>HoloLens2のビルドに必要なモジュールをインストールしておく
>やり方はUnityHubのインストールから使用するバージョンのモジュールを加える
>#####必要なモジュール
>- ユニバーサル Windows プラットフォーム ビルド サポート
>- Windows ビルド サポート (IL2CPP)
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/08e04011-298c-dace-6435-3229ed403c21.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/7b090b81-50fc-e477-310e-de83acb46bfc.png)


###手順

####1.projectの作成

####2.HoloLens2用の設定をする
2.6.0バージョンではWindows XR Pluginを使用する
File/Build settings...からビルド環境をUWPに変更する．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/c9122e29-216b-8343-52a3-0a44061ab909.png)

TMPをimportする
Windows/TextMeshPro/Import TMP Essential Resourcesからパッケージをimportする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/a7efa93a-d7c6-f94c-bbba-b4116e9bee07.png)

####3.MRTKを導入する
※参考：[Welcome to the Mixed Reality Feature Tool](https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/welcome-to-mr-feature-tool)
[.NET 5.0 runtime](https://dotnet.microsoft.com/download/dotnet/5.0)を導入している必要があると記載されているためしておく方がよい
[Microsoft Mixed Reality Feature Tool](https://www.microsoft.com/en-us/download/details.aspx?id=102778)をDLして開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/fe7ff954-8c3f-21cf-90a8-dd41154ceb2d.png)
設定したいバージョンがないならSetting/Feature/Show preview releasesにチェックする必要がある

導入したいUnityプロジェクトを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/67051055-be5a-f957-2ca2-6f0795d44df8.png)
導入するToolkitとバージョンを選択する（[参考](https://hololabinc.github.io/MixedRealityToolkit-Unity/Documentation.ja/Packaging/MRTK_Packages.html)）
以下のものを推奨する
・Mixed Reality Toolkit Example：[**Foundation，Extensionsに依存**]，パッケージの機能を使用するデモ、サンプル スクリプト、およびサンプルシーン
・Mixed Reality Toolkit Extensions：[**Foundationに依存**]，MRTK の機能を拡張する追加のコンポーネント
・Mixed Reality Toolkit Foundation：[**必須**，**Standard Assetsに依存**]，Mixed Reality Toolkit の基礎
・Mixed Reality Toolkit Standard Assets：[**必須**]，全ての Mixed Reality エクスペリエンスに推奨されるコンポーネントのコレクション
・Mixed Reality Toolkit Tools：[**Foundationに依存**]，MRTKを使った Mixed Reality 開発エクスペリエンスを強化する役に立つツール,Unity Editor の Mixed Reality Toolkit > Utilitiesメニュー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/2c10def3-0875-7f73-42c5-c07a4dcd7e4c.png)
Validate(検証)で確認後Import
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/d67fda4c-bdc1-438d-3c31-9af72cda8cf7.png)
問題なければApproveする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/7accf6ef-4753-0ebc-dd32-149c2dc37079.png)
していることはPackage Managerの設定（Package/manifest.jsonに記述）とMixedRealityファイルの中に必要なファイルのDLだと思われる
jsonファイルのバックアップもされていると思われる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/8c1a85a9-29ae-2992-16ba-5f13cc348d1e.png)

導入後Unityに戻るとPackageが導入され，以下の画面が出てくるのでApplyする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/4c7f6d28-a9b3-2f9a-c3d7-8cbecd524b91.png)
もし出てこなくてもMixed Reality Toolkit/Utilities/Configure Unity Projectからウィンドウを出せる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/7f7e9161-83f8-34d1-d6ec-5750bb849621.png)

####4.XR Plug-in Manegementの設定
File/Build settings...からPlayer Settings...もしくはEdit/Project Settings...から
XR Plugin Manegementウィンドウを開く

install XR Plugin Managementを押す
AssetsにXRフォルダが追加される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/7e942fe9-e0a3-e79a-b006-8643f45e1dd6.png)

Windows Mixed Realityにチェックを入れる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/ee24fe22-0f1b-7d74-9146-031cacdd52b8.png)
設定は以下の通り
Depth Buffer Formatはプロジェクトのグラフィックパフォーマンスの向上のため「16bit depth」が推奨されている
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/9e18e811-346d-262f-8c88-b50d20890aba.png)

またPublishing SettingsのPackage nameでアプリケーションの名前を変更することが可能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/9abfb09b-77b4-fc08-7cf4-049b5ef3f3da.png)


###5.Sceneの設定
Mixed Reality Toolkit/Add to Scene and Configure...を押す
SceneにMixedRealityToolkitとMixedRealityPlayspaceが追加される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/2e7337de-7f79-9d26-7a07-ff328ff592b4.png)
プロファイルの設定を変更したい場合，クローンを作成する必要がある
Copy&Customizeを押して名前を変更し，Clone
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/915eeac7-9a3d-af59-6ce6-5791d333fef1.png)

saveすると保存される
これでビルドを行うと何もない空間のアプリケーションが生成される

###6.Build
対象のシーンが追加&チェックされていることを確認してBuild
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/ab727d7a-505d-a5bb-523b-9864f370fafc.png)
Build先のフォルダを選択
APPやBuildなどのフォルダを新規作成すると良い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/2d05aeb4-ea99-25ea-e14e-fac05a5d8db9.png)

HoloLens2への書き込みはVisual Stadio
以前の記事の[ビルド](https://qiita.com/T170521/items/8da9e6ad10e0c5f80d2d#5%E3%83%93%E3%83%AB%E3%83%89)以降を参考にしてください
>USB-TypeCでHoloLens2とLaptopを接続する
>※CtoCができない場合はCtoAなど別のUSBケーブルを利用してください

>Visual StadioがHoloLens2にBuildするように設定を変更する
>1.構成をDebugからReleaseに変更
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/4a327ca6-5170-7700-b5a2-befefad9ea66.png)
>2.ARM64(Windowsx64)もしくはARM(Windowsx32)に設定
>※PCに合わせて設定してください(ほとんどx64でOKです)
>3.ビルド先をリモートコンピュータからデバイスに変更
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/0208765a-63cb-5bf9-4a24-10fcea08e0d2.png)
>4.デバッグ/デバッグなしで開始をクリック
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/922c9fd2-adc0-cd70-646a-700752b225e2.png)
>これでビルドをしてHoloLens2に配置までを自動で行う
>初回のビルド時はPINコードによる認証が必要，入力を促される

>#####7.デバイス同士のペアリング
>アプリケーションのビルドを行うためにHoloLens2で設定する必要がある(私はエラーで気づかされた)
>開発者モードの設定を有効にする
>・HoloLens2
>![20200723_003335_HoloLens.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/c386c68c-e19f-a352-4fdb-f39bdb271900.jpeg)
>![20200723_002331_HoloLens.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/b9bb7c3c-466f-6596-13d6-d3c8fb7c7c92.jpeg)
>ペアリングからPINコードを表示
>それをVisual Stadioで打ち込む

>しかし私はここでエラーが発生

>#####8.リモートでビルド
>USBからではなくリモートで行う
>デバイス→リモートコンピュータに変更
>HoloLens2のWi-Fi設定からIPアドレスを取得，プロジェクトのプロパティからデバイス名にIPアドレスを入力，デバッグなしで開始
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/62ff4a23-1f13-c293-80dc-16020e17f84f.png)
>するとPINコード入力画面が出現
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563922/33fecc37-899d-6f9b-b504-b34c36a6f35d.png)
>開発者モードのペアリングからPINコードを取得，Visual Stadioで入力
>配置正常終了と出て，HoloLens2でアプリが起動！

##あとがき
次は[Tutorial](https://qiita.com/T170521/items/7ec463fcab3e7ab3ce52)を進める