LoginSignup
0
1

More than 5 years have passed since last update.

UnityでDaydreamコントローラーのGesture C APIを使う

Last updated at Posted at 2019-04-04

はじめに

DaydreamはGesture C APIがありタッチパッドについて以下のような機能を使えます。
このAPIはAndroid NDKのみに提供されていているのでUnityから扱えるようにしました。

  • スワイプ判定 (開始、スワイプ中、終了、スワイプ)
  • スワイプ方向の判定(上下左右)
  • スワイプ速度(X軸とY軸)
  • スワイプ移動量(X軸とY軸)
  • 長押し判定

使い方

ソース

https://gist.github.com/shiena/d2cbd2bd100cc9ed7db4b4dfd608feca から2つのソースをコピーしてUnityプロジェクトに入れます。

使い方

using UnityEngine;

public class GestureTest
{
    [SerializeField] private GvrGesture gvrGesture;

    void Update()
    {
        var gestures = gvrGesture.GetGesture();
        if (gestures.Count > 0)
        {
            foreach (var g in gestures)
            {
                Debug.Log($"{g.GestureType}, {g.GestureDirection}, {g.Displacement.x}, {g.Displacement.y}, {g.Velocity.x}, {g.Velocity.y}");
            }
        }

        if (gvrGesture.LongPressed())
        {
            Debug.Log("Long pressed");
        }
    }
}
機能 メソッド
スワイプ判定 GvrGesture::GetGesture()
長押し判定 GvrGesture::LongPressed()

このAPIがなくてもUnityで同じ事を実現できるのですがあったらあったで便利です。
せっかくなのでUnity Package Managerに対応しようとしたのですが依存先にGoogle VR SDK for Unityを指定できないので断念しました。残念。

リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1