2015年5月6日水曜日

【GearVR】自分の向いている方向を取得する

Unity+GearVRで自分の向いている方向を取得するには
OVRCameraRig/TrackingSpace/CenterEyeAnchor
のrotationを取得すればいい。

var centerEyeAnchor = GameObject.Find("CenterEyeAnchor");
Debug.Log (centerEyeAnchor.transform.rotation);

2015年5月4日月曜日

GearVRの入力を使う

GearVRにはタッチパッドとバックボタンの入力がついています。

Unityでタッチパッドの入力を取得するには
Input.GetMouseButton

を利用します。

座標を取得するには
Input.mousePosition

を利用します。
パッドのどの部分を触ってもまずはX:1280,Y:720の座標が返されます。
ドラッグで動かすと触った部分を起点として座標が変化します。
なのでタッチパッドのどの部分を触ったかという判定は取れないようです。
(といっても目隠し状態なので正確に狙った位置を触るのは元々無理そうですが)

タッチの開始を取得するには
Input.GetMouseButtonDown
タッチの終了を取得するには
Input.GetMouseButtonUp
を利用します。

バックボタンを取得するには
Input.GetKey(KeyCode.Escape)

を利用します。


確認用サンプルコード
using UnityEngine;
using System.Collections;

public class Main : MonoBehaviour {

 // Use this for initialization
 void Start () {
  Debug.Log ("GearVR test");
  Debug.Log ("ScreenSize:" + Screen.width + "," + Screen.height);
 }
 
 // Update is called once per frame
 void Update () {

  if(Input.GetMouseButton(0)){
   var mousePos = Input.mousePosition;
   Debug.Log ("mouse down:" + mousePos);
  }

  if(Input.GetMouseButtonUp(0)){
   var mousePos = Input.mousePosition;
   Debug.Log ("mouse up" + mousePos);
  }

  if (Input.GetKey(KeyCode.Escape)){
   Debug.Log ("escape");
  }
 }
}

デバッグ手法についてはこちらを参考にさせていただきました。
UnityでGear VR用アプリを作るなら知っておきたいデバッグ方法

2015年5月3日日曜日

Gear VRの開発をはじめる

Gear VRを入手したのでひとまず開発環境を揃えてみる。
開発にはUnityを使用していきます

ひと通りの流れはここを参考にすれば大丈夫そう
Unity5でGear VR用アプリの開発方法

※上記手順でUnityにOVRCameraRigを入れてEditor上で実行した際に
Oculus Runtimeが入ってないよ。とエラーが出る場合は
SDKをダウンロードしたページでOSにあったRuntimeをダウンロードしてインストールしましょう。

アプリをインストールして起動時に「予期せぬエラーで終了しました」と出る場合
上記ページにあるようにUnityに最新のパッチを適用しましょう。

それでもエラーが出る場合はosigのIDがちゃんと合っているか確認しましょう。
(タイポしててハマった勢)

※2015/11/4追記
Unity5.2ではPlayerSettingsVirtual Reality supportedにチェック入れて
osigAssets/Plugins/Android/assetsに放り込んでビルドするだけでSDKを導入せずとも
動かすことができます。便利!