今後に向け、OculusRift用カメラのコントローラーである
OVRPlayerControllerを自分用に改造することに。
直接SDKのファイルを弄るのは色々とアレなので、
てきとーな名前に変えたファイル・クラスで作成開始。
とりあえず、中身をほぼそのまま移して、
英語コメントを訳したり、コードが汚い部分を整理して、
他のファイルとの整合性を調整して、
PrefubのController部分を入れ替えて、実行すると…
BroadcastException: Broadcasting message "Sensor_Attached" but listeners have a different signature than the broadcaster.
OVRMessenger.Broadcast[Device,Boolean] (System.String eventType, Device arg1, Boolean arg2) (at Assets/OVR/Scripts/OVRMessenger.cs:293)
OVRDevice.Update () (at Assets/OVR/Scripts/OVRDevice.cs:288)
よく分からないエラー発生\(^o^)/
公式フォーラムに同じような質問を投げている人がいるけど、解決してない!/(^o^)\
https://developer.oculusvr.com/forums/viewtopic.php?t=1110&p=11959
とりあえず、色々と調べたみたけど…
- Prefubの「OVRMain Menu」を無効化すると正常に動作する
- 独自ファイルで書いていたコードを「OVRPlayerController.cs」にコピペして実行すると正常に動作(謎)
- 原因は、OVRPlayerController.cs以外のクラス名(又はファイル名)を使ったこと…?
- 一時的処置として、SDK内のファイルでOVRPlayerController型で宣言されているものは、今回実装した独自の型に変えている(ビルドは通るが、実行時にエラー)
…ぎぶあっぷ
↑にも書いた通り、SDK内のファイルに直で書いたら
問題なく通るので…しばらくは直書きで…
(定期的に実装したコードを保存しないと、SDKアップデート時に上書きされてしまいそう…)