参考になりそうな情報などあれば、教えて頂けると有り難いです。よろしくお願いいたします。
- _04_1_obj_uGUI_pointer.scene に Scale X:100 Y:1 Z:100 の Cube を任意の場所に作る
- シーンを再生後、何もせずにシーンを停止
- 以下のエラーが発生
Warning-XR Device was switched during runtime with overlays still enabled. When doing so, all overlays constructed with the previous XR device must first be disabled. UnityEngine.Debug:LogError (object) OVROverlay:LateUpdate () (at Assets/Oculus/VR/Scripts/OVROverlay.cs:1089)
※実際にこのエラーが発生したのは別のシーンを作成中でしたが、上記の手順で再現確認できたので、こちらを記載しています。
3点確認していただけますか。
1.Unityのバージョン
2.Oculus Integrationのバージョン
3.Oculus Integrationで使っているPluginは、OpenXRベースか、Legacyベースか
3番めの確認は、添付のようにOculusメニューから辿っていってどちらの設定になっているか(Oculus Integrationのバージョンによってメニューの改装は多少変わりますがToolsなどの下にLegacyかOpenXRかを切り替えるところが見つかると思います)
これが原因なのか、原因だとしてどのように悪さしているのかは不明ですが、自分の環境では、Lightingウィンドウの下部にある、Auto Generatedのチェックをいれてエディタを実行するとエラーがでる、チェックを外すとエラーが消える、という挙動でした。
Unity2020.3.32
Oculus Integration バージョン40.0
添付の最新の Quest Basics バージョン 1_39_0 を使用
なお同様の傾向は、シーン 02_1、03_1など、シーン中にGazePointerのある全てのシーンで起こっているみたいです。
3点確認
- 2020.3.20f1
- 0.39.0
- Legacy ( Import 後に Legacy を押しています。現在は Use Required Project Settings にチェックが入っていて、添付して頂いた画像と同じ状態でした。 )
あと、Cubeのサイズが 100, 1, 100 のときでも、例えばポジションを 1000,1000,1000 のような視界に入らないような場所におくとエラーが出ませんでした。
なのでおそらく推測ですが、
Unityのエディタを止めたときにライティング処理関連のなにかの動作をしているタイミングで、サイズの大きなオブジェクトがあるなどで処理に通常より時間がかかり、デバイスをスイッチのタイミングが遅れ、SDKが認識している(握っている)XRデバイスと別のデバイスだと勘違いしてしまう、ような何かが発生している気がします。
ただもしライティング周りが原因であればいったんは無視して作業進めても良いかもしれません(ビルドできない、などの実質的な問題があれば別です)
(再現率:① 10/10回 、② 5/10 回)
[OVRPlugin] Failed to reset timer resolution. UnityEngine.Debug:LogWarning (object) OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at Assets/Oculus/VR/Scripts/OVRManager.cs:1532)
OVRManager.Update OVRManager.SetCurrentXRDevice if OVRPlugun.initialized // 実装はDLL内のため詳細確認できず。 // シーン終了直後、上記判定が False になるため loadedXRDevice = XRDevice.Unknown; // この値がセットされます OVROverlay.LateUpdate // 最後に SetCurrentXRDevice が呼ばれた後に必ず呼び出されます if (OVRManager.loadedXRDevice != constructedOverlayXRDevice) // 値を比較すると // OVRManager.loadedXRDevice == XRDevice.Unknown // 先程の OVRManager.SetCurrentXRDevice で変更されています // constructedOverlayXRDevice == XRDevice.Oculus // アプリ実行中、常にこの値の様子
レポートありがとうございました、全く同じ状況を再現できているわけではないのですが、進行不能などの実質的な問題は起きてなさそうなので、開発を進めていくこと自体は正しい判断だと思います。
SDKの中に踏み込むのは限界もありいったんはこのまま様子見とさせて下さい。開発中に問題となる挙動起こすようであればご連絡下さい。