OculusGOを手に入れたらアニメ見るぞ!と思ってたのに、なにか作るぞ!となってしまって色々いじっています。不思議!
環境
OculusGO
Windows7 Professional 64bit
Unity 2017.4.3f1
OculusGOで自作Unityアプリを動かすまで
以下のサイトあたりを参考にしました。
Unityの玉転がしチュートリアルを#OculusGoに対応させる
Oculus Go とUnityとMacで始めるVR開発
OculusGOでタッチパッド移動をする
カメラの向きは取れたので次はコントローラーだ!というわけで、これまた以下のサイトを参考に色々やってみました。
MasterSystemゲームオブジェクトにコントローラー監視スクリプトを貼り付け、OVRCameraRigを参照させます。コードは以下の通り。これでタッチパッドに触れるとスイーっと動きます。
LASERはトリガー引いたらパーティクル出すテスト用で、今回は扱いません。
public class OculusInputManager : MonoBehaviour {
public GameObject OVRCameraRig; //カメラ
void Update () {
if (OVRInput.Get(OVRInput.Touch.PrimaryTouchpad)){
Vector2 pt = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad); //タッチパッドの位置
OVRCameraRig.transform.position += new Vector3(pt.x * Time.deltaTime * 10, 0, pt.y * Time.deltaTime * 10);
}
}
}
OculusGOでオーバーレイUIを表示する
どこかで「UIは3Dオブジェクトとして世界に配置すべし」といった記述をみた記憶がうっすらあるので、非VRゲームのようにバリバリUI設置をしたらまずいかもしれません。ただ「プレイヤーがちゃんと見えてる大体の範囲」を把握したかったので実装してみました。
カメラの実装
以下のサイトを参考に実装。
注意点としては
- 追加したカメラの直下にCanvasを置く(画像参照、CenterEyeAnchor/MainCamera/Canvas/UI要素)
- MainCameraの設定のうち、変更の指示がない部分はCenterEyeAnchorと同じ
- MainCameraの位置、向きはすべて0
UIの実装
Shapes2Dでさくっと枠線を追加し、見える範囲の見える化をしました。OculusGOの解像度に対して、緑100%、赤75%、青50%のサイズにしています。
全部しっかり見えるのは青い範囲程度で、赤は角が見えません。意外と狭いですね。緑は普通にしていたら見えません。というか画面外が見えると同義なので、見えたらダメなやつですね。