トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

MetaXRSDKだけで、スティック移動・回転・uGUI入力・ボタン入力

サンプルを触ってやれそうな気がしてきたのでやる

bibinbaleo.hatenablog.com

既存のシーンに追加していく

スティック移動・回転

OVRPlayerControllerというプレハブが用意されていて、その下にOVRCameraRigも入っていた。でももういろいろ変更したCameraRigが既存のシーンにあるので、そのプレハブをUnpackして、OVRCameraRigを消して、既存のものに置き換えた

それだけで移動した!やった~

でもVRIKの歩行モーションはどう設定しても不自然だったので、Animationを用意したほうがよさそう。

qiita.com

回転の角度はRotationAmountかな?これを3にしたら90度回転している気がする

移動速度はacceleationかな?

こちら項目の解説があった

raspberly.hateblo.jp

Jumpは自分で呼び出すらしいけど、なんか見当たらない。スクリプトの中にはあるのに

uGUI入力

基本この記事の通り

qiita.com

楽をするために、ControllerDrivenHandPosesシーンからGazePointerControls(LineRendererが含まれる)をプレハブ化して、持ってきた。

CanvasはGraphic Raycasterを消してOVR Raycasterを付ける。Pointerに手を設置

EventSystemも既存のInputModuleを消してOVRInputModuleを付ける。以下のように設定

JoyPadClickButton(=決定ボタン)は複数選べる。サンプルシーンの設定を持ってきた

あとOVRPointerVisualizerを適当なオブジェクトにつけて、LineRendereを設定すると、手からRayが出るようになる

最初のQiita記事の方がこれを編集してUIに当たった場所にGazeIconの子に設置した任意のポインターが表示できるようなコードを上げてくださっているのでそれを使った。

これで動いた~~

デザイン

あとLINERendereやGazeのSphereのデザインを編集していい感じにした。

LineRendereのColorって変更しても反映されないのか?Materialの色しか反映されない。

Materialの色を白にして、Colorでグラデーションを付けても反映されない。

あとGazeIconの先につけるSphereの大きさは0.5でちょうどよかった。実行するときLineRendereの幅に影響されるのかな?Colliderがあるとアバターがぶっ飛んだので取った

ControlsとGazePointerとEventSystemをまとめてプレハブ化したら少しは楽に使いまわせるだろうか?

ボタン入力

簡単にやるならController Buttons Mapperを適当なオブジェクトに付けてボタンとイベントを選択するだけ。