Questで自作アプリにいろいろ不具合が起きていたので調べると、Questにアップデートが入っていることが分かりました。
QuestがGoとして認識されているのか、自作アプリの中でGoのコントローラーが表示されたり入力ボタンが設定と違ったりしました。(アップデートされていないQuestではならない)
追記
Oculus Integration v1.40で色々いい感じになったそうです。
解決方法
これ
TargetDevicesにQuestを設定した後、
AndroidManifestをいったん消してまた作ればいいそうです。
<uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="true" />
が入っていればいい。
エラー
これでbuildしたらエラーが出た。
CommandInvokationFailure: Gradle build failed.
長ーいエラー文を読むと一時作成の?Androidmanifestでバッティングしているらしい。
ググったらAndroidManifestがバッティングしているらしい。一回消したはずなのに
[Project Folder]/Temp/gradleOut/src/main/にもAndroidManifest.xmlがあって、Assetの中にもある。
2つある。
エラー解決
QuestがGoと認識される問題を解決する記事には3つの方法が載ってある。
1つ目でやったからエラーが出たんだと思い、2つ目のtempのほうに直接書き込むをしてたらビルドはできたけどGoのコントローラーが出てしまった。
なので3つ目の方法をしたら解決した。3つ目はスクリプトから直接AndroidManifestに例の記述を書き込む方法。
ビルドもできたしQuestのコントローラーも出てきた。
OculusIntegration
OculusIntegrationが2019/7/25に1.39にアップデートされていました。
これをアップデートすると不具合も治るのかな?と思って、上の解決方法を見つける前にアップデートしていました。
いっぱいエラーが出てきました。
UpdateはAssetStore経由です。AssetStoreには1.38って書いてある。
いつも入れたらUnityの中でアップデートが入って一回再起動する。
これで1.39になったのか?
追記
UnityIntegrationの更新の時はmetaファイルも消さないといけないらしい。
Oculus Integrationを更新する時はUnityを落としてAssets/OculusとAssets/Oculus.metaを削除した状態で新規追加でやらないと古いライブラリが残ってエラー原因になる。Unityから削除してもdllはロックされていて消えないからちゃんとUnityを落としてから削除すること #unity
— KOGA Mitsuhiro (@shiena) August 1, 2019
でもアセットストアから入れるのにどうやってUnity落としてインストールするんだろう?
からのプロジェクトに入れてそれをコピーするのか?
教えていただきました。
アップデートエラーの解消についてこんな感じです。
— KOGA Mitsuhiro (@shiena) August 29, 2019
1.Unityを落とす
2.エクスプローラから/Assets/Oculusとmetaを削除する
3.Unityでプロジェクトを開く(この時Oculus Integrationがないのでエラーが出ます)
4.アセットストアから新規で入れる
わざわざこんな事やるのはdllを消せないからです
アセットを入れるときはUnity開いておいていいんですね。勘違いしてました。
OVRTrackedRemote
まず確実なバグとして、OVRTrackedRemote.csの中のクラス名がOVRControllerHelperになっています。
Oculus Integrationダウンロードしたら、OVRTrackedRemoteファイルのクラス名がOVRControllerHelperだったんだけど…🤭
— みっちー (@nyu___nSfms) July 24, 2019
OVRTrackedRemoteに変えましょう。
OVRPlugin.dll
Asset/Oculus/VR/Pluginsの中に1.38と1.32のフォルダがあってそれが原因でdllが二つあるみたいなエラーが出ました。
これは昔もあった気がする。古いほうを消せばいいと思う。
コントローラー
以下は一番最初のAndroidManifestによって解決されたので読まないでいい。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これはVRTKとの兼ね合いかもしれないけど、想定したのコントローラーが出ない。
これは以前Updateした時もなった。
おまえは誰だ。
前どうやって直したんだっけ。
Questのコントローラーだけ出てほしいのにPCでやったらRiftが出るし、QuestでやったらGoが出る>>>>>><<<<<<にゃあああああん
ここはQuestを選択している。
VRTKにもSDKを選ぶところがある。古いからかQuestという選択肢はない。Goすらない。
VRTKがOculus Integrationの最新版だとコンパイル通らないんだがどうしたもんか。
— ROBA (@vjroba) July 25, 2019
VRTK4だと通るらしい。
その他
あとなんかもろもろのエラーが出たけどClearを押せば消えたりした(いいのか)
あとこれは私のミスかもしれないけどOvrAvatarというところでエラーが出た。こうしたら治った。
Questのアップデート
ちなみにQuestのバージョンは設定>すべて>情報からみれる
バージョンが7.0.0~
OSバージョンがuser-3337~
になった。
前は
バージョンが3.60.71~
OSバージョンがuser-2565~
今回のアップデート内容
Release Notes | Oculus Support Center
最後に
twitter検索で解決法にたどり着けた。ありがたい。
1回ビルド後にTemp/StagingArea/AndroidManifest.xml を Assets/Plugins/Android に入れて、<uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1"/> を追加してビルドしなおすとQuestとして認識されるようになる。
— 三上 航人 CharacterBank inc. (@_charabank) July 25, 2019