はじめに
Oculus Questの開発でデバッグする際にOVRDebugConsoleをよく利用しているのですが、
最近使用できない状況があり、理由がわかるまでにちょっと時間がかかったので、
同じような状況があればお役に立てればと思います。
開発環境
Unity 2019.1.9f1
Oculus Integration for Unity - 1.37
発生した現象
あるコードにOVRDebugConsole.Logを追加したところ、以下のエラーが発生し、ビルドが通りませんでした。
error CS0103: The name 'OVRDebugConsole' does not exist in the current context
原因
スクリプトのコンパイル順が原因でした。
Unityのマニュアルを見ると、コンパイル順序はPhase1~4があり、OVRDebugConsoleは"Assembly-CSharp"に含まれるのでPhase3になります。
一方、問題のコードは"Assembly-CSharp-firstpass"に含まれており一番先頭のPhase1のため、
OVRDebugConsoleは参照できない状況になっていました。
(どこに含まれるかは、Projectウインドウでスクリプトを選択したときに、InspectorのAssembly Informationに表示されます)
特殊フォルダーとスクリプトのコンパイル順
そのほか
今回、Runtime Inspector & Hierarchyというアセットを使おうとしてうまく動かなかったため、調査しようとして上記現象に遭遇しました。
Runtime Inspector & Hierarchy
InspectorとHierarchyを実機上で動かせるという大変便利そうなアセットで、Oculus Goでは動かした人がいるようなので、Oculus Questでも動かせると考えたのですが、自分の環境ではHierarchyは表示されるがInspectorが表示されないという現象になっており・・・未解決です。
VR開発中にOVRRaycasterで少しハマった話