您的位置:首页 > 移动开发 > Unity3D

AR/VR learning (2)--unity3D在android 上的手势识别与检测

2016-06-20 17:42 453 查看

1.此处需要使用FingerGestures的插件,大家可以在这里找到最FingerGestures新版本下载地址,这个插件主要目地是帮我们识别手势。

2.FingerGestures的包结构,在Assets/plugin/下。

FingerGestures/ 插件的根目录

FingerGestures/Prefabs 可以直接拖放到场景中的预设资源(prefabs)

FingerGestures/Scripts 核心脚本和组件

FingerGestures/Scripts/Gesture Recognizers 每个手势识别 的脚本

FingerGestures/Scripts/Finger Event Detectors 每个触摸事件检测器的脚本

FingerGestures/Scripts/Components 手势识别和触摸事件所需要添加的额外组件

FingerGestures/Toolbox FingerGestures 自带的工具箱脚本

FingerGestures/Samples.unitypackage 所有例子的子包

FingerGestures/PlayMaker Actions.unitypackage FingerGestures对PlayMaker扩展的插件

Editor/FingerGestures FingerGestures对编辑器的扩展

3.这个插件可以做的事情

鼠标或是手指事件,可以去检测鼠标或是手指上,下,按不移动和悬停事件。可以识别基本的手势,如单击,双击,拖动,长按和滑动手势。可以用两个或是多个手指同时在触摸屏上挤压或是扭转,还能识别自定义的点云手势等。

4. 下面通过一个简单的事例来讲解如何识别一个轻敲手势。(下面关键步骤会加粗)

4.1 设置场景,并导入FingerGestures如下图中所示



4.2 实例化一个FingerGesture组件,实例化才可以使用,FingerGestures是用来管理用户输入和识别手势和鼠标等事件。有两种实例化的方法直接是把Plugins\FingerGestures\Prefabs下的FingerGestures Prefab文件拖入场景中,用来初始化,然后可以创建一个空的物体,然后将FingerGesture组件加进去

4.3 创建一个GameObject/3Dobject/cube并重命名为Gestures

给Gestures添加一个TapRecognizer组件,并保持默认设置,也可以用componet/fingergestures/gestures/TapRecongnizer,完成如下图中所示



4.4创建一个新的C#script叫TapTutorial,并添加到Gestures中(4.3中创建的),TapTutorial.cs脚本中的内容如下



using UnityEngine;
using System.Collections;

public class TapTutorial : MonoBehaviour {

// Use this for initialization
void Start () {

}
void OnTap(TapGesture gesture)
{
//轻击的数量
int taps = gesture.Taps;

Debug.Log("Tap gesture detected at " + gesture.Position +
". It was sent by " + gesture.Recognizer.name +"taps num" +taps);
}
// Update is called once per frame
void Update () {

}
}


4.5结果如下图中所示。



5 下面总结下:

手势操作的基本步骤

1.添加对应的GestureRecognizer组件到场景中的目标组件

2. 配置它的属性

3.监听它的手势和对应响应

AR/VR小众交流群。



Reference:

1.API及官方文档

2.单击示例

3.Others

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: