Skip to content

OculusGOでタッチパッド移動、オーバーレイUIを実装した

Posted in 技術記事

OculusGOを手に入れたらアニメ見るぞ!と思ってたのに、なにか作るぞ!となってしまって色々いじっています。不思議!

環境

OculusGO
Windows7 Professional 64bit
Unity 2017.4.3f1

OculusGOで自作Unityアプリを動かすまで

以下のサイトあたりを参考にしました。
Unityの玉転がしチュートリアルを#OculusGoに対応させる
Oculus Go とUnityとMacで始めるVR開発

OculusGoを開発者モードでUSB接続出来ない時の解決法

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%のサイズにしています。
全部しっかり見えるのは青い範囲程度で、赤は角が見えません。意外と狭いですね。緑は普通にしていたら見えません。というか画面外が見えると同義なので、見えたらダメなやつですね。

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です