#実現したいこと
CTで撮影した画像を3D化し、その画像をVRでどの角度からでも観察できるようにしたい。
どの角度からでも見られるよう、カメラが球体座標内(極座標)で動くスクリプト書いています。
カメラの動きはをGearVRに付属されているコントローラーのタッチパッドの入力情報を取得することで制御したいと思っています。
タッチパッドの右側を+x軸、左側を-x軸、上側を+y軸、下側を-y軸方向とし、押されている間はそれぞれに対応した移動を考えています。
#問題点
タッチパッドの入力情報を上手く受け取れず、ビルトしてみると全く動かすことができない。
#試したこと
OVRInput.GetDown(OVRInput.Button.Down)
OVRInput.GetDown(OVRInput.Button.DpadDown)
OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad)
の3種類のInputを試してみましたが、いずれもびくとも動いてくれません。
現在のスクリプトを一部抜粋しました。
Vector2 padでタッチパッドの入力による移動量を求め、移動自体は極座標での移動を考えているので、padのx,yの値をそれぞれ計算式に代入して、カメラの親オブジェクトを移動させるという流れです。
C#
1 2public Vector2 pad = Vector2.zero; 3 4void Update () { 5//Button.Downを用いた場合 6if (OVRInput.GetDown(OVRInput.Button.Down)) 7 { 8 pad.y += moveScale * Time.deltaTime; 9 } 10 11//Button.DpadDownを用いた場合 12if (OVRInput.GetDown(OVRInput.Button.DpadDown)) 13 { 14 pad.y += moveScale * Time.deltaTime; 15 } 16 17//Axis2Dを用いた場合 18pad += (OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad)); 19 20 21//上でそれぞれの入力によるx,y軸の座標を求め、式に入力 22 pos.x = distance * Mathf.Sin(mouse.y * Mathf.PI) * Mathf.Cos(mouse.x * Mathf.PI); 23
色々と調べ、試してはみたのですが上手くいきません。。
コントローラーはOVRPlayerController/OVRCameraRig/TrackingSpace/RightHandAnchor、LeftHandAnchorにTrackedRemoteをアタッチし、ビルトすると手の動きに合わせてコントローラーが動いています。
コントローラーでの移動は酔いの原因となる可能性も高く、賛否両論あるかと思いますが、解決案をご教示頂ければ幸いです。
#使用ソフト類
・Unity 2017.3.0f3
・ovr_unity_utilities_1.24.0
あなたの回答
tips
プレビュー