#FirstVRでのスワイプ認識
##スワイプ認識とは
FirstVRにおけるスワイプ認識とは手を上下左右どの方向に振ったかの認識で、腕をある方向にふることを合図として何かを行いたい場合に利用します。
画面を切り替えたりするのに使えそうですよね。
引用:マイノリティリポート(2002)
##STEP1 - SDKの準備
まずSDKをインストールします。
SDKは以下のリンクからダウンロードしてください
(開発者の登録を済ませていない方は事前にメールアドレスの登録が必要になるかもしれません。)
そのあとにAssets/Sceneの中にあるOutputViewer.sceneを開いてください
##STEP2:サンプルスクリプトの作成とゲームオブジェクトの準備
上下左右どの方向にスワイプをしているかを識別したい場合はFVRゲームオブジェクトにアタッチされているFVRGestureManagerのインスタンスを使います。
具体的には、FVRGestureManagerインスタンス変数であるswipeU,swipeD,swipeL,swipeRのインスタンス変数であるtriggeredがtrueかfalseかで判定を行います。(インスタンス変数のインスタンス変数ってややこしいですねw)
以下はサンプルのスクリプトになります。
アタッチした後にUnityエディタからFVRGestureManagerにFVRゲームオブジェクトのFVRGestureManagerをアタッチしてください
##注意##
あくまでもtriggerと書いてあるためスワイプを行った瞬間のみtrueになるので、その場合はflagを使って状態を保持してください。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using FVRlib;
using UnityEngine.UI;
public class SwipeCheck : MonoBehaviour {
public Text checkText;
FVRGesture.Types swipe;
public FVRGestureManager fvrGestureManager;
//スワイプしているかどうかを検知する場合はUpdate関数など常に呼ばれる関数内でチェックします。
void Update () {
//Up,Down,Left,Rightをチェックする変数は1つの変数でチェックする訳ではないので以下のようにif文で書くようにします。
if (fvrGestureManager.swipeU.triggered)
{
checkText.text = "UP!!!!";
}
else if (fvrGestureManager.swipeD.triggered)
{
checkText.text = "Down!!!!";
}
else if (fvrGestureManager.swipeL.triggered)
{
checkText.text = "Left!!!!";
}else if(fvrGestureManager.swipeR.triggered){
checkText.text = "Right!!!!";
}
}
}
ちなみにFirstVRには開発者用のスラックがあるようなのでもしわからないことがあったらスラックに入って質問して見るのもいいかもしれません。
リンク:https://goo.gl/wpu63X