どうも!新入社員のタケです!
今日はOculus Integrationで開発中に見つけた、VR操作でUIを使うときの隠された設定を使えるようにしてみました!
公式のスクリプトを一行変えるだけです!
今回いじるのはOculus IntegrationでuGUIを触る時に使ったUIHelperです。
UIHelperにはUIにカーソルがあっているかどうか示すためにポインターが表示されます。
VRでUIを使うときの設定を解説した記事はこちらにあるので分からない方はこちらからどうぞ!
https://glasses202.blogspot.com/2021/01/unityvrvrui.html
UIHelperの中身はこのようになっています。
UIを選んだ時に表示されるレーザーポインタとスフィアが子に入っていますね。
実際に使うとこのようになります。
スフィアはUIに当たった時だけ表示されますが、ラインは常に表示されますね。
私はこのラインが邪魔で仕方がないので、UIに当たった時だけ表示にしたいのです…!
しょうがないので公式のプログラムを改造してその機能つけよう!くらいの気持ちでいました。
Laser Pointerというスクリプトが制御しているようです。
早速プログラムの中身を見てみると…なにやら気になる記述が!
なんと、Enumが用意されているではないですか!
Enumはメニューのことで、設定すればinspectorなどでプルダウンメニューから操作できるようになります。
でもLaserPointerにはそんな操作はなかったので、これは…隠し機能…!!
下のほうにはLaserBeamBehaviorの変数がありましたが、Privateになっていました。
これではInspectorに表示されないので、Publicにしてあげます。
そうすると…Inspectorに新たな項目、Laser Beam Behaviorが追加されてONかOFF、On When Hit Targetの三つから選択できるようになります。
On When Hit Targetにしてあげるとスフィアと同じようにUIに当たった時だけレーザーが表示されるようになりました!
…
いや~公式の作ったスクリプトものぞいてみるものですね。
色々な発見があったり、こうやって実現すればいいんだな!というお勉強にもなりますよ!
コメント
コメントを投稿