Oculus VR Tips

色々

Unity + Oculus Quest 2 開発メモ

Oculus XR Pluginのエラー

最新(Unity2020.2.5f1, Oculus XR Plugin 1.8.1) だとビルド時にエラーとなってしまう. ので一度消してダウングレードする. 1.7.0で動いた.

OVRInput.Button

Map Controllers | Oculus Developers

  • ボタンを押したかの判定だけでなく, 接近している(NearTouch), 触れた(Touch) ことの判定も出来る
  • 左が Primary, 右が Secondary になる(逆転する可能性あり?)

HMDの傾き取得

OVRCameraRig についてのあれこれ - Qiita

replacement for InputTracking.GetLocalPosition in unity

InputTracking.GetLocalRotation() がObsoleteになり InputTracking.GetNodeStates() が推奨されているが取得出来なかった.

var list = new List<XRNodeState>();
InputTracking.GetNodeStates(list);
var headState = list.First(n => n.nodeType == XRNode.Head);
var q = new Quaternion();
Debug.Log(headState);
var result = headState.TryGetRotation(out q);

とりあえず OVRCameraRig に任せることに

OVRCameraRig についてのあれこれ - Qiita

Canvas

Oculus QuestでuGUIを操作する - Qiita

todo : Canvasの文字が周りのオブジェクトとかより奥に描画されてしまうのはどうすればよいのか

移動方法

HMD回転: カメラ回転

左スティック: プレイヤー移動

右スティック: プレイヤー回転

→ とても酔う

Distance Grabbable & Distance Grabber

【VR】Unityで手を使ってものをつかむ+遠距離から引き寄せる方法(Oculus Rift S + Touch, Unity 2019.4.1f, Oculus Integration, Distance Graberの場合) - ミライのおもちゃ箱

遠距離の物を掴み寄せることができるコンポーネント

Assets/Oculus/Usageにサンプルあり, 掴みたいオブジェクトにRigitBodyとDistance Grabbableをつけ, 掴む側にOVRGrabManagerを設定する.

https://i.imgur.com/dk8epNy.png

todo CharacterControllerと共存する方法

→ PlatformProviderの値によってSetActive切り替えしている

非VR-AndroidとVR-Androidのマルチぷらっとフォーム