本日はUnityでのxR開発のトラブルシューティング枠です。
〇問題
先日HoloLensアプリ開発中にUnityのゲームウィンドウがロックされてしまい、Input周りを受け付けないトラブルがありました。
特にマウスやキーボードを使用したカメラの移動が全くできず、開発上困ってしまったためトラブルシューティングを行いました。
Lock Input to Game View in order for tracked pose driver to work in editor playmode. UnityEngine.XR.Management.XRGeneralSettings:AttemptInitializeXRSDKOnLoad () (at Library/PackageCache/com.unity.xr.management@4.1.0/Runtime/XRGeneralSettings.cs:148)
似たようなエラーで実行時に毎フレーム次のようなエラーが発生する場合は別の解消になります。
InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
こちらのトラブルシューティングは次の記事を参考にしてください。
〇環境
・Unity 2021.19f1
・UniversalRenderPipeline(URP)
・MRTK v2.7
〇解消
この問題は「エディタ上でEditorWindowが入力を検知できるように画面をロックしている」ことを意味しています。
つまり、何らかの原因でEditorWindowが動いています。
これはワールドメニュー[Window]→[Analysis]→[**InputDebugger]を開きます。
[Option]を開き[Lock input Game View]をクリックし、必要があれば再度クリックし、チェックを外します。
筆者の環境ではチェックは入っておらず、見た目上無効の状態でしたが、なぜか有効になっているようで再度無効にすることで問題が解消しました。
以上でOpenXRプロジェクトでGameViewがロックされてしまう問題が解消できました。