Unity MR開発 環境構築

# はじめに
この記事はMetaQuest3を用いてMR開発をするための**基礎の基礎**であるUnityの環境構築を行うための手順を記す．
# Unityのインストール
まずUnityHubをインストールする．
https://unity.com/ja/download
>Unity Hub はすべての Unity プロジェクトとインストールを管理する管理ツール．Hub を使って，Unity エディターの複数のインストールをコンポーネントと一緒に管理することや，新規プロジェクトの作成，既存プロジェクトの起動もできる．
>>`引用` [Unity公式サイト-Unity Hub のインストール](https://docs.unity3d.com/ja/2019.4/Manual/GettingStartedInstallingHub.html)

インストールして，UnityHubをひらいたらこのような画面が表示される．(Macでは...Winも同じような感じ)
![スクリーンショット 2024-04-08 14.51.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/02c89563-075c-54f2-42a4-7d56824f7204.png)

次にUnityエディタをインストールする．

`インストール`を押して，

![スクリーンショット 2024-04-08 14.53.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/43442151-957c-dba9-b56a-b5939c23901c.png)

`エディターをインストール`を押して，

![スクリーンショット 2024-04-08 14.53.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/095b19d0-017e-030f-d3ae-7dfe739a1fbe.png)

用途にあったUnityバージョンをインストール．(今回は推奨バージョンでインストールする)

![スクリーンショット 2024-04-08 14.53.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/ccb2d95e-069d-a6b1-df72-3d10d396d885.png)

MetaQuest3でMR開発をするには`Android Build Support` と `Visual Studio for Mac`が必要なのでチェックを入れて`続行する`を押す．その後Unityエディタのインストールが始まる．

# 新しいプロジェクトの作成
実際にMR開発をするためのプロジェクトを作成する．
`新しいプロジェクト`を押す．
![スクリーンショット 2024-04-08 14.51.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/76689472-f131-eff2-1b88-9895f07a74d0.png)

`3D(Built-in)`を選択して，適当なプロジェクト名(今回はMRtest)と保存先のパスを入力して`プロジェクトを作成`を押す．
![スクリーンショット 2024-04-08 15.03.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/715635b0-b45e-2fa7-2dfc-a56413db27b8.png)

作成したら自動的にUnityエディタが開く．

![スクリーンショット 2024-04-08 15.05.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/97071b5c-c791-157a-d42b-06ee313397d2.png)

開き終わるとこのような画面になっているはずである．
![スクリーンショット 2024-04-08 15.06.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/75f939d1-8d29-c54e-2509-a68d3d2c55cb.png)

次にUnity Asset StoreでMeta All-in-One SDKを取得する．
https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657

>**Unity Assetとは**
>ゲームやアプリケーション開発に役立つ様々なデジタル素材の総称．具体的には，3Dモデル，テクスチャ，スプライト，アニメーション，サウンドエフェクト，音楽，スクリプト，シェーダー，プレハブなど，Unityプロジェクトで使用できるあらゆるものが含まれる．
>>Meta All-in-One SDKはMetaQuestを用いて開発するためのAssetである．

`マイアセットに追加する`を押す．
 ![スクリーンショット 2024-04-08 15.18.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/5893e65c-2f1b-748d-3587-507070135f12.png)

 >マイアセットに追加してUnityエディターでマイアセット内のAssetをインポートする流れである．
 >>UnityIDの作成を求められた場合作成すること

その後，Unityエディターに戻って`Window-Package Manager`を押す．

 ![スクリーンショット 2024-04-08 15.47.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/9aa1d70e-7af6-317f-898c-ca20981d16da.png)

`Packages: In Project`を選択し，`My Assets`を選択する．

![スクリーンショット 2024-04-08 15.50.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/06f46a19-54a0-9a56-ae9b-31d67096b2f0.png)

`Meta XR ALL-in-One SDK`　を選択して`install`を押す．

![スクリーンショット 2024-04-08 16.05.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/71713dce-07cc-2b66-187f-68d86d9c702e.png)

次に`File`を選択して`Build Settings`を押す．

![スクリーンショット 2024-04-08 16.11.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/602e8189-c819-21bc-9ac7-7c300d05a767.png)


`Android`を選択して`Switch Platform`を押す．

![スクリーンショット 2024-04-08 16.11.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/a60d5798-a815-1a94-56b7-a15f28ab8417.png)

`Player Seting...`を選択し，`Meta XR`を選択し，`’Androidマーク’`を選択し，`Fix All`と`Apply All`を押してさまざまなエラーや問題を修正したものを適用する．

![スクリーンショット 2024-04-08 16.19.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/6e5e8cd5-0a05-fc23-80be-e79a22fc17da.png)

# シーン内にカメラを追加する
Projectビュー内で`OVRCameraRig(Packages/com.meta.xr.sdk.core/Prefabs/OVRCameraRig.prefab)`を検索し．`OVRCameraRig`と`OVRSceneManager`をAssetsにドラッグ&ドロップする．
>`Search:`が`In Packages`になっているかどうか確認すること

![スクリーンショット 2024-04-08 16.54.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/b829a61e-ed19-d6f0-5e68-9c739cf08f84.png)

Assetフォルダを開くと以下のようになっている．`OVRCameraRig`と`OVRSceneManager`が追加されているか確認する．
>**AssetsとPackagesの違い**
>"Assets"フォルダはプロジェクト内のコンテンツを管理し，"Packages"フォルダは外部の機能やリソースを追加するための場所．"Packages"にあるprefabファイルは編集できないので"Assets"フォルダに入れてからシーンに追加すること．

![スクリーンショット 2024-04-08 17.29.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/a9616aba-f093-b8f8-be31-8a819db1d149.png)

次に"Assets"フォルダ内の`OVRCameraRig`と`OVRSceneManager`をhierarchyビューの`SampleScene`に追加して，`MainCamera`を削除する．必要に応じて`OVRCameraRig`の位置を調節する．`OVRSceneManager`は変更不要である．

![スクリーンショット 2024-04-08 17.36.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/7b7955d4-b717-1727-7ef5-9e3bb33ff293.png)

hierarchyビューの`OVRCameraRig`を選択してinspectorビューで`Target Devices`の`Quest3`にチェックする．
![スクリーンショット 2024-04-08 18.06.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/c7163b44-c5f0-1141-7ebe-3e7e9d6b98fd.png)

inspectorビューで`Scene Support`と`Passthrough Support`を`Required`にする．
![スクリーンショット 2024-04-08 18.03.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/c7384cef-a713-1520-2bdf-eb8093cfccce.png)

inspectorビューの`Insight Passthrough`の`Enable Passthrough`にチェックする．
![スクリーンショット 2024-04-08 18.03.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/8a02a477-f5a7-153d-8fd8-1100fc8bf04d.png)

inspectorビューの一番下の`Add Component`を押して`OVR Passthrough Layer`を検索して選択する．

![スクリーンショット 2024-04-08 18.14.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/2fb4257e-23e8-6caa-1ea9-a67f828a176c.png)

inspectorビューの`OVR Passthrough Layer`の`Placement`を`Underlay`にする．
![スクリーンショット 2024-04-08 18.17.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/95ed565e-d748-6a50-5645-b839c8de8472.png)

次に上部の`Oculus`を選択して，`Tools` - `Building　Blocks`を選択する．

> `2025/2/22追記` Oculusがなくなっています．その代わり`meta` - `Tools` - `Building　Blocks`に変わっています．

![スクリーンショット 2024-04-23 11.28.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/c85a7ac4-fb09-71a2-8993-236818c6b1a2.png)

PassThroughをHierarchyにドラッグ&ドロップする．
![スクリーンショット 2024-04-23 11.28.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/9feda7b3-bf84-31c2-b1d3-257186061282.png)

XR Plug-in Managementをinstallしておく．
![スクリーンショット 2025-02-22 14.02.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/e14619d0-05fb-4ab8-bdaa-5df5cdeaa9aa.png)


以上でMRのセットアップは完了である．
>シーンの保存を忘れないでね

試しにUnityエディタのGameObjectから3DObjectを選択してSphereを原点周辺に設置してみる．

![スクリーンショット 2024-04-23 11.33.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3757442/01a39935-04c7-32bb-a219-dedeb4ed7528.png)


これをQuest3上で実行してみると，以下のようになる．

(写真は後日載せます)