Unity · VRソフト

Channel PlayerをOculus Goに移植中。

Go付属のコントローラーは、Rift付属のコントローラーとは異なり、タッチパッドなので、4方向ボタンのように使うには、ただ位置を取るのではなく、クリックしたときに値を取得するようにしてみました。そうするとボタンのように使えます。

以下は、Channel Playerのフォルダー設定画面用の開発中のコードの一部です。

 
if (timer <= 0)
{
currentAxis = new AxisEventData(EventSystem.current);
currentButton = EventSystem.current.currentSelectedGameObject;
touchPadPt = OVRInput.Get(OVRInput.Axis2D.PrimaryTouchpad);

debugtext.text = "x:" + touchPadPt.x + ", y:" + touchPadPt.y;
Debug.Log("x:" + touchPadPt.x + ", y:" + touchPadPt.y);

// タッチパッドが押された時
if (OVRInput.Get(OVRInput.Button.PrimaryTouchpad))
{
// xの範囲が -0.5から0.5にあり、かつyの値が0.5を超えていたらupとする。
if (Input.GetAxis("DPadV") > deadZone || (touchPadPt.y > 0.5 && -0.5 < touchPadPt.x && touchPadPt.x < 0.5)) // move up
{
// EventSystemにUp情報を送る。
currentAxis.moveDir = MoveDirection.Up;
ExecuteEvents.Execute(currentButton, currentAxis, ExecuteEvents.moveHandler);
}

フォルダ選択画面がコントローラーで操作出来るようになったので、今度はファイルシステムへのアクセスにトライします。ただし、タッチパッドの位置をリアルタイムで画面に表示させデバッグしていますが、ときどき全く位置が取れずに、touchPadPt.x, touchPadPt.yがいずれも0になることがあり、このコントローラーで制御するのはすごくストレスフルなので、使わないのもありだろうと思います。なにか変です。Oculus homeでも、思ったように操作できないことが多いですし。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中