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

Unity3D插件之FingerGesture的使用

2016-01-20 15:25 701 查看

一、FingerGesture功能简介

fingergesture是基于Unity的一个主用于移动设备输入的插件,可以完成基本的移动设备的手势识别。
其中,基本的手势操作可以在Unity调试时使用鼠标模拟(原理在于基本手势事件的触发是使用射线实现的)。


二、基本使用方法

首先要做的当然是下载插件啦,插件下载地址在文章结尾

1、挂载FingerGestures脚本

首先导入FingerGesture插件后,在场景中新建一个空物体Fingergestures,找到下图所示FingerGestures脚本,把该脚本挂载到Fingergestures上。该脚本是一个手势管理脚本,在使用该插件时你只需要负责把它拖到场景激活即可。



2、挂载ScreenRaycaster脚本

新建空物体TestObect,将ScreenRaycaster脚本挂载到该物体上。ScreenRaycaster是处理射线相关的逻辑,以配合实现手势的检测。



3、挂在相应手势脚本

完成以上两步,接下来就是可以根据需要触发相应的事件函数了

在如下图所示菜单栏中可以找到对象事件监听脚本,挂载到TestObject上,挂载了相应的脚本就可触发相应的事件。





脚本对应事件说明:

Drag Recognizer : 拖拽识别事件 鼠标或手指触摸屏幕移动时触发

Long Press Recognizer: 长按识别事件 鼠标或手指长按屏幕不动时触发

Pinch Recognizer: 手指挤压事件 两根手指向中间挤压时触发

PointCloud Recognizer: 点云事件 进行自定义手势时触发

Swipe Recognizer: 滑动事件 进行方向滑动时触发

Twist Recognizer: 手指旋转事件 两根手指进行旋转方向时触发

4、新建自定义脚本,处理相应手势事件

现在,新建C#脚本TestGesture,按照如下所示相应事件的函数签名格式进行函数定义,当触发相关手势时就会执行你定义的函数了。

函数签名格式如下图:



三、示例演示



源文件中有TestGesture.apk可导出到安卓设备进行测试

大家运行的时候就会明白相应测试功能了,这里要说明的是,上图中的胶囊体需要在手机上进行测试。可以通过挤压与旋转对胶囊体进行旋转与缩放,其中滑动条的作用是控制缩放与旋转因子。另外,第一个Cube是可以被拖拽的。(另外,大家可以去研究FingerGesture的官方案例,都是很有标志性的示例)

在此给出官方示例的主要功能:

Finger Event(鼠标或手指事件)

FingerEventsPart1: 展示如何通过不同的检测器( FingerEventDetectors )去检测鼠标或者手指的上(down)、下(up),按下不移动(stationary,悬停(hover) 事件。

FingerEventsPart2: 展示如何识别不同鼠标或者手指动作(FingerMotionDetector)。

Gestures(手势)

BasicGestures: 识别单击(react to tap),双击(double tap),拖动(drag),长按(long——press),滑动(swipe)等基础手势。

PinchAndTwist: 两个或多个手指同时在触摸屏上挤压(pinch)或扭转(twist)时,触发手势的事件。(PS:通常都是用来缩放或旋转)

PointCloudGestures: 示范如何识别一个点云(point cloud)手势。(PS:通常是指用用户画的图案作为识别)

Toolbox(工具箱)

Camera(放入摄像机的脚本):

Toolbox-DragView: 展示使用TBDragView脚本,实现拖动视角。

Toolbox-Orbit: 展示使用TBOrbit脚本,实现围绕目标旋转视角。

Toolbox-Pan: 展示使用TBPan脚本,实现以自身为轴旋转视角。

Toolbox-PinchZoom: 展示使用TBPinchZoom脚本,实现变焦。

Object-Based(放入普通场景对象的脚本):

Toolbox-Drag: 展示使用TBDrag脚本,实现简单的物体拖动

Toolbox-Hover: 展示使用TBHoverChangeMaterial 和 TBHoverChangeScale脚本,实现当鼠标或者手指悬停在物体上时候的响应。(PS:类似鼠标放到图标上,图标发亮的效果)

Toolbox-PinchToScale 展示使用TBPinchToScale脚本,实现缩放物体

Toolbox-TwistToRotate: 展示使用TBTwistToRotate脚本,实现旋转物体

四、示例工程文件下载地址

工程文件:

链接:http://pan.baidu.com/s/1pKsZdmb 密码:t8oz

以下是插件下载地址:

FingerGestures v3.1

链接:http://pan.baidu.com/s/1mheRYXy 密码:vz91

NGUI v3.8.2

链接:http://pan.baidu.com/s/1pK005y7 密码:ywbq
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息