obj_uGUI_pointer.scene にCube生成時にエラー | VR Forum | Tech Stadium Forum

obj_uGUI_pointer.sc...
 
通知
すべてクリア

obj_uGUI_pointer.scene にCube生成時にエラー  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
21/08/2022 1:51 pm  
エラーの原因が分からず困っています。
参考になりそうな情報などあれば、教えて頂けると有り難いです。よろしくお願いいたします。
 
再現手順:
  1. _04_1_obj_uGUI_pointer.scene に Scale X:100 Y:1 Z:100 の Cube を任意の場所に作る
  2. シーンを再生後、何もせずにシーンを停止
  3. 以下のエラーが発生
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)
※Cube の Scale を X:10 Y:1 Z:10 にすると発生しない(しきい値不明)
※実際にこのエラーが発生したのは別のシーンを作成中でしたが、上記の手順で再現確認できたので、こちらを記載しています。

引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
21/08/2022 1:52 pm  

3点確認していただけますか。

1.Unityのバージョン
2.Oculus Integrationのバージョン
3.Oculus Integrationで使っているPluginは、OpenXRベースか、Legacyベースか

3番めの確認は、添付のようにOculusメニューから辿っていってどちらの設定になっているか(Oculus Integrationのバージョンによってメニューの改装は多少変わりますがToolsなどの下にLegacyかOpenXRかを切り替えるところが見つかると思います)


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
21/08/2022 1:53 pm  

これが原因なのか、原因だとしてどのように悪さしているのかは不明ですが、自分の環境では、Lightingウィンドウの下部にある、Auto Generatedのチェックをいれてエディタを実行するとエラーがでる、チェックを外すとエラーが消える、という挙動でした。

Unity2020.3.32
Oculus Integration バージョン40.0
添付の最新の Quest Basics バージョン 1_39_0 を使用

 

なお同様の傾向は、シーン 02_1、03_1など、シーン中にGazePointerのある全てのシーンで起こっているみたいです。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
21/08/2022 1:53 pm  
ご返信ありがとうございます。

3点確認

 
  1. 2020.3.20f1
  2. 0.39.0
  3. Legacy  ( Import 後に Legacy を押しています。現在は Use Required Project Settings にチェックが入っていて、添付して頂いた画像と同じ状態でした。 )
※ Quest Basics 1.28.0Basics のバージョンが古いですね…

返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
21/08/2022 1:54 pm  

あと、Cubeのサイズが 100, 1, 100 のときでも、例えばポジションを 1000,1000,1000 のような視界に入らないような場所におくとエラーが出ませんでした。

なのでおそらく推測ですが、
Unityのエディタを止めたときにライティング処理関連のなにかの動作をしているタイミングで、サイズの大きなオブジェクトがあるなどで処理に通常より時間がかかり、デバイスをスイッチのタイミングが遅れ、SDKが認識している(握っている)XRデバイスと別のデバイスだと勘違いしてしまう、ような何かが発生している気がします。

ただもしライティング周りが原因であればいったんは無視して作業進めても良いかもしれません(ビルドできない、などの実質的な問題があれば別です)


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
21/08/2022 1:54 pm  
①OVRGazePointer の GameObject を非アクティブにしてシーンを実行する
②シーン実行後に「左右両方のコントローラーを動かし続けた状態」でシーンを停止する
 
上記の、①または②を試すと、例外エラーは発生せず、以下の Warning エラーのみが表示されました。
(再現率:① 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)

返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
21/08/2022 1:56 pm  
引き続き、状況を共有させて頂きます。
 
・ビルド→インストール→実行の結果
 
シーン再生中、進行不能になることはありませんでした。
また、アプリ終了時に実行したアプリに関わる Error  Fatal エラーレベルのログは収集できませんでした。
 
・公式のサンプルシーン 「OVROverlayCanvas」でも再現する
・シーンを終了時の処理変化の確認
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 // アプリ実行中、常にこの値の様子
 
ビルドできないという状況ではないので、このまま開発を進めたいと思います…
※追記:Quest Basics 1_39_0 に更新いたしました。ありがとうございます。

返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
21/08/2022 1:56 pm  

レポートありがとうございました、全く同じ状況を再現できているわけではないのですが、進行不能などの実質的な問題は起きてなさそうなので、開発を進めていくこと自体は正しい判断だと思います。
SDKの中に踏み込むのは限界もありいったんはこのまま様子見とさせて下さい。開発中に問題となる挙動起こすようであればご連絡下さい。


返信引用
共有:
タイトルとURLをコピーしました