Unityで制作したアプリをMeta Quest2(OculusQuest2)でビルドする方法

初めまして！
[CYBIRD Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cybird) 5日目担当の @yoooosu です。
4日目は@shiso_cさんのunity1weekの記事でしたね。とても興味深い内容だったので是非見てみて下さい。

# 自己紹介
2022年にサイバードへ新卒で入社いたしました@yoooosuと申します。ゲーム開発系の専門学校に通っており、UnityとC#をメインに勉強していました。現在はサーバーサイドに配属されて主にPHPを扱っています。

# 今回の記事について
今回、記事を書かせて頂くにことになって何を書こうかな〜と考えた時に、学生時代に一番開発を行っていたVRが頭に浮かんだのでVR開発のことを書かせて頂こうと思いました。自分はVR開発って意外とやっている人が少ないという印象を持っているので、この記事をきっかけに触れてみようかなって人がひとりでも増えてくれれば嬉しいです。なので、今回は初めて触れる人でもできる記事を目指します！

# 目次
1. 今回使用するツール
1. Unityの準備
1. MetaQuest2(OculusQuest2)の準備
1. 実際にBuildしてみる

# 1. 今回使用するツール
今回使用するツールは以下のものになります。
・Unity(2021.2.19f1)
・VSCode
・MetQuest2(OculusQuest2)(v42)
・MacBookPro 16インチ　2021(Monterey,12.1)

# 2. Unityの準備
まずはUnityでプロジェクトを作成します。
UnityHubを開いて右上にあるNew Projectをクリックします。
![スクリーンショット 2022-11-30 17.56.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/bb95cbae-3712-b662-eb98-b4071b0cdb10.png)
その後、プロジェクト作成画面になります。３Dを選択して、プロジェクト名を入力した後に右下のCreateProjectをクリックします。これでプロジェクトの作成は完了です。
![スクリーンショット 2022-11-24 17.57.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/c2e8209f-2ba7-0a63-cf34-d830e21c4129.png)

Unityが立ち上がったら次に[Oculus Integration](https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022)をインストールします。
https://assetstore.unity.com/packages/tools/integration/oculus-integration-82022
これは公式が用意してくれているサポートツールなので入れておきましょう。
インストールが終わったら、UnityでWindow>Packege Manegerを開いて先程インストールしたOculus IntegrationをUnityにインポートします。
![スクリーンショット 2022-11-24 18.06.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/580bfbce-c6ec-53b0-f661-8d86d843972f.png)
![スクリーンショット 2022-11-30 12.34.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/db03b843-53db-eb00-4b28-9ce7669f2e4d.png)

インポートが終わったら、Assetsの中にインポートしたものが追加されている思います。
![スクリーンショット 2022-11-30 12.37.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/b3e81698-eccb-bd7c-0e89-9997e3c6f1a4.png)

次にビルドするものを作成していきましょう。プロジェクトを作成したらSampleSceneが作られていると思います。今回はそこを使っていこうと思います。
SampleSceneのHierarchyの上で右クリック>3D Object>Cubeを押すとシーン上にCubeが生成されます。
![スクリーンショット 2022-11-30 18.18.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/1005f7dd-3871-73f8-5724-cdf74331431c.png)

ただCubeをビルドしても面白くないので、Cubeを回そうと思います。Assetsフォルダの上で右クリック>create>C#Scriptでスクリプトファイルを作成できます。名前をつけないといけないので、今回はCubeControllerにしました。作成したファイルをクリックすると作成したスクリプトファイルを編集することができます。
![スクリーンショット 2022-11-30 18.23.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/43a872c5-dd4f-513c-7fcf-a2925505d3b2.png)

作成したCubeControllerを以下のように編集します。

```
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CubeController : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        this.transform.Rotate(Vector3.up * 90 * Time.deltaTime);
    }
}
```

変更したら保存をして、Cubecontrollerを先程作成したCubeにドラッグアンドドロップしてくっつけます。その後、実行ボタンを押すとCubeが回転します。今回はこれをMetaQuest2(OculusQuest2)でビルドしようと思います。
![ダウンロード (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/7050c32a-03da-8e86-f1ff-3b48fa0d977a.gif)

次にカメラを変更します。最初に設定してあるカメラだとVRでビルドした時に動かないので、最初にインポートしたOculus Integrationが用意してくれているカメラを使用したいと思います。Assets>Oculus>VR>Prefabs>OVRCameraRigをシーン上に配置して、位置を調整します。この時、最初からあるMainCamereはdeleteするか非表示にして下さい。
![スクリーンショット 2022-11-30 12.44.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/354bcd3a-a2f2-a71a-41c5-8412ccc59c8b.png)

ビルドするものは完成したので、次に設定を変更したいと思います。
File>Build Settingを開いてPlatormをAndroidにして右下のSwitch Platformを押してビルドするプラットフォームを変更します。
![スクリーンショット 2022-11-30 12.47.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/e2a28be4-d0bd-610a-7591-4ea963ecfb48.png)

変更できたら、Build settingの中にあるPlayer Setting>XR Plugin Managementをインストールします。
![スクリーンショット 2022-11-30 12.52.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/c02452c0-a20c-5d4e-3470-912969551496.png)

インストールが終わったら、項目が出てくるのでOculusにチェックを入れます。
![スクリーンショット 2022-11-30 12.52.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/918d42c7-4b50-56ca-e529-36fc839fa114.png)

その後、Target Devicesに今回対象のQuest2にチェックが入ってるか確認します。入ってなかったらチェックを入れて下さい。
![スクリーンショット 2022-11-30 12.53.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/52b1729b-ed94-eec8-2550-d1f49d8e700b.png)

以上でUnity側の準備が完了です！


# 3. MetaQuest2(OculusQuest2)の準備
次にMetaQuest2(OculusQuest2)の準備をしていきましょう。
お使いのPCとMetaQuest2(OculusQuest2)を接続するとデバイスへの許可を求められるので許可しましょう。
![74.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/33e24400-6463-83a7-1ed8-7f97e81d59a7.jpeg)
![75.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/ee2eb5c6-311c-ca88-b209-b5dd4cc5d4a2.jpeg)

以上でMetaQuest2(OculusQuest2)の準備は完了です。


# 4. 実際にBuildしてみる
UnityとMetaQuest2(OculusQuest2)での準備が終わったので、実際にビルドしていきましょう。
UnityでFile>Build Settingを開いてRun DeviceにOculus Quest2が選べるようになっていると思うので選択して　右下にあるBuild And Runを押します。
![スクリーンショット 2022-11-30 13.01.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/a399683e-f2bb-ea2d-049f-ba492619628d.png)

そうするとどこに保存するか聞かれるので、PC上で保存したい場所を選んで名前をつけてSaveを押すとビルドが始まります。

![スクリーンショット 2022-11-30 13.01.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/098ff643-15f5-2c4d-c6c9-6bb5c1b085ca.png)

ビルドが成功するとMetaQuest2(OculusQuest2)で自動的に実行されて、回転しているCubeが見れると思います。
![ezgif-1-f112dab4eb-min.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2991293/601f1aaf-4cb0-8a2e-2976-1ea18a886e7a.gif)

# 終わりに
今回の記事はいかがだったでしょうか？VRへの興味を少しでも持って頂ければ幸いです。個人的にVRでの開発は今でも続けているので何かしらで情報を共有できる機会があれば良いですね。
明日は@cy-yuka-WPさんの記事です。Excelやスプレッドシートを使用している人は多いので得られる情報が多そうで楽しみですね！