Oculus QuestとUnityで遊ぶノート

# この記事は
UnityでOculus Quest開発を行うための環境構築のノートです。

# 参考リンク
- [Oculus Quest Development Guide](https://developer.oculus.com/documentation/quest/latest/)
- [Unity Sample Framework](https://developer.oculus.com/documentation/quest/latest/concepts/unity-sample-framework/)
- [Preparing for Android Development](https://developer.oculus.com/documentation/quest/latest/concepts/unity-mobileprep/)


# 準備したもの
- Unity 2018.3.14f1
- [Unity Integration (Unity Asset)](https://developer.oculus.com/downloads/package/unity-integration/)
- [Android Studio](https://developer.android.com/studio/index.html)

# Android開発環境のセットアップ
- [Android environment setup](https://docs.unity3d.com/Manual/android-sdksetup.html)

# Oculus Questのセットアップ
- [Device Setup - Oculus Quest](https://developer.oculus.com/documentation/quest/latest/concepts/mobile-device-setup-quest/)
  - adbのインストール [Oculus go adb driver](https://developer.oculus.com/downloads/package/oculus-go-adb-drivers/)
  - adb.exe へ環境変数pathを通す
    - C:\Users\<user_name>\AppData\Local\Android\Sdk\platform-tools

# Oculusアプリで開発者モードをONする
- スマホのOculusアプリ -> "設定" -> OculusQuestを選択して"接続" -> "その他の設定" -> "開発者モード" ON

# OculusQuestとUSB接続する
- USB接続すると、OculusQuestにUSB接続許可ダイアログが表示される
  - ダイアログが出ない場合は、USB接続しなおすか、OculusQuestを再起動するかする
- 接続確認
  - コマンドプロンプトで、```adb devides```と打ち込み、下記のように表示されればOK
    - unknownが表示される場合は、USB接続しなおすか、OculusQuestを再起動するかする

```
D:\git\OculusQuestTest.git>adb devices
List of devices attached
1PASH9AJWY9192  device

```

# Unityプロジェクトをセットアップ
- 新規プロジェクトをつくる
- AssetStoreから、"Oculus Integration"をインポートする
- Assets/Oculus/VR/Prefabs/OVRCameraRigをHierarchyへマウスドラッグする
- MainCameraを削除する
- OVRCameraRig -> OVR Manager -> TargetDevices
  を"Quest"へ変更する
- ProjectSettings -> Player
  - Package Name
  - Minimum API LevelをAPI Level 19へ
  - XR Settings -> Virtual Reality SupportedをON
  - "Android"側の"Vitrual Reality SDKs"を"Oculus"にする

//- Unityのメニューから"Oculus" -> "Tools" -> "Oculus Platform Tool"
//  - "OVR Platform Tool" -> "Target Oculus Platform" -> "Oculus Quest"にする


# UnityプロジェクトをAndroidビルドする
- Unityで"Build Settings"を開く
- "Add Open Scenes"を押して、シーンを追加する
- "Android"を選択する
- "Run Devise" -> "Oculus Quest"を選択する
- "Switch Platform"を押す
- "Build And Run"を押す

# apkをOculus Questへインストールする

```
adb install
```
して、apkファイルをshellへドラッグアンドドロップ


# つまずいた

```
D:\git\OculusQuestTest.git>adb install D:\git\OculusQuestTest.git\apk\OculusQuestTest.apk
Performing Streamed Install
adb: failed to install D:\git\OculusQuestTest.git\apk\OculusQuestTest.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install com.oculus.UnitySample without first uninstalling.]
```

しかし、下記で解決した！！
(-r オプションつけた)

```
D:\git\OculusQuestTest.git>adb install -r D:\git\OculusQuestTest.git\apk\OculusQuestTest.apk
Performing Streamed Install
Success
```

# Oculus Questで撮ったscreeshotsフォルダを取り出す

```
D:\git\OculusQuestTest.git>adb pull /sdcard/oculus/screenshots D:\git\OculusQuestTest.git\files
/sdcard/oculus/screenshots/: 4 files pulled. 3.8 MB/s (209538 bytes in 0.052s)
```

# 浮いてるトーフを眺めるVRアプリをつくったえらいすごい！！

![com.oculus.UnitySample-20190602-170117.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/56003/eae68357-677d-e44f-14d7-635b8050394f.jpeg)