Unity 手势识别插件
2017-08-12 23:30
525 查看
PS:根据需要先看是否禁止多点触控 API :Input.multyTouchEnabled;
当出现有点击行为但是有不能让点击下方的UI时
判断鼠标或者触控点在不在UI上
Simple Gesture 插件
SimpleGesture类
调用方式
* 重点*
SimpleGesture.OnTap();
点击
OnTap
检测手指何时点击屏幕,而不考虑手指停留在屏幕上的时间。
OnShortTap
检测手指何时按下屏幕,但第一次触摸和手指释放之间的时间小于0.5秒。。
OnLongTap
检测手指何时按下屏幕,但第一次触摸和手指释放之间的时间大于0.5秒。
OnDoubleTap
检测手指何时在短时间内(默认半秒钟)再次按屏幕。
滑动
Swipe
用一根手指画一条直线后触发手势。
Swipe
用一根手指画一条直线后触发手势。
OnSwipe
当手指在屏幕周围的任何方向上滑动并且在手指被提起之后被触发。
4个带方向滑动
在四个方向(向上,向右,向下和向左)检测滑动的方法。 为了决定滑动的方向,空间分为4个象限,每个象限为90度。
On4AxisSwipeUp
当手指在屏幕向上滑动并在手指抬起之后触发。
On4AxisSwipeDown
当手指在屏幕向下滑动并在手指抬起之后触发。
On4AxisSwipeRight
当手指在屏幕向右滑动并在手指抬起之后触发。
On4AxisSwipeLeft
当手指在屏幕向左滑动并在手指抬起之后触发。
8个带方向滑动
在8个方向(向上,向右,向下和向左以及对角线)检测滑动的方法。 为了决定滑动的方向,空间分为8个象限,每个象限的角度为40º和50º(对角象限度数相等)。
up Down Right Left 40
其他50
On9AxisSwipeUp
当手指在屏幕向上滑动并在手指抬起之后触发。
On9AxisSwipeDown
当手指在屏幕向下滑动并在手指抬起之后触发。
On9AxisSwipeRight
当手指在屏幕向右滑动并在手指抬起之后触发。
On9AxisSwipeLeft
当手指在屏幕向左滑动并在手指抬起之后触发。
On9AxisSwipeDiagonalRightUp
当手指在屏幕向右上滑动并在手指抬起之后触发。
[b]On9AxisSwipeDiagonalRightDown
当手指在屏幕右下滑动并在手指抬起之后触发。
On9AxisSwipeDiagonalLeftUp
当手指在屏幕左上滑动并在手指抬起之后触发。
On9AxisSwipeDiagonalLeftDown
当手指在屏幕左下滑动并在手指抬起之后触发。
快速切换
PS: 滑动切换界面用
像其他滑动方式一样,但是他们并不等待手指抬起。 相反,只要手势被识别为滑动,则轻触滑动被触发。
4个方向
On4AxisFlickSwipeUp
当手指在屏幕向上滑动并一旦有足够的信息知道手势是滑动即被触发。
On4AxisFlickSwipeDown
当手指在屏幕向下滑动并一旦有足够的信息知道手势是滑动即被触发。
On4AxisFlickSwipeRight
当手指在屏幕向右滑动并一旦有足够的信息知道手势是滑动即被触发。
On4AxisFlickSwipeLeft
当手指在屏幕向左滑动并一旦有足够的信息知道手势是滑动即被触发。
8个方向
On9AxisFlickSwipeUp
当手指在屏幕向上滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeDown
当手指在屏幕向下滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeRight
当手指在屏幕向右滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeLeft
当手指在屏幕向左滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeRightUp
当手指在屏幕向右上滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeRightDown
当手指在屏幕右下滑动并在一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeLeftUp
当手指在屏幕左上滑动并在一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeLeftDown
当手指在屏幕左下滑动并在一旦有足够的信息知道手势是滑动即被触发。
形状手势
当SimpleGesture检测到用手指绘制的特定形状时,触发手势。
OnCircle
检测手指在触摸屏上绘制圆形时。
OnZigZag
检测手指在触摸屏上绘制至少3个边缘的曲折
连续手势
只要手指正在移动,连续手势会持续触发。
例如,平移是一个连续的手势,因为它是在手指移动时被触发的
While1FingerPanning
当1手指平移检测到手指在屏幕周围移动时。
WhilePanning
检测到2个或更多个手指在屏幕周围一起移动时。
WhilePinching
检测到2个手指捏住屏幕(缩小)时。
WhileStretching
检测到2个手指伸展屏幕(放大)时。
WhileTwisting
当扭转检测到2个手指绕枢轴旋转时。
获取更加详细的信息
有关此手势的更多信息,只需在自定义函数中添加GestureInfoXX(根据行为添加不同)参数类型,
当出现有点击行为但是有不能让点击下方的UI时
判断鼠标或者触控点在不在UI上
#if IPHONE || ANDROID if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) #else if (EventSystem.current.IsPointerOverGameObject()) #endif
Simple Gesture 插件
SimpleGesture类
调用方式
public void Awake() { SimpleGesture.OnTap(MyMethod); } void MyMethod() { Debug.log("方法") }
* 重点*
SimpleGesture.OnTap();
点击
OnTap
检测手指何时点击屏幕,而不考虑手指停留在屏幕上的时间。
OnShortTap
检测手指何时按下屏幕,但第一次触摸和手指释放之间的时间小于0.5秒。。
OnLongTap
检测手指何时按下屏幕,但第一次触摸和手指释放之间的时间大于0.5秒。
OnDoubleTap
检测手指何时在短时间内(默认半秒钟)再次按屏幕。
滑动
Swipe
用一根手指画一条直线后触发手势。
Swipe
用一根手指画一条直线后触发手势。
OnSwipe
当手指在屏幕周围的任何方向上滑动并且在手指被提起之后被触发。
4个带方向滑动
在四个方向(向上,向右,向下和向左)检测滑动的方法。 为了决定滑动的方向,空间分为4个象限,每个象限为90度。
On4AxisSwipeUp
当手指在屏幕向上滑动并在手指抬起之后触发。
On4AxisSwipeDown
当手指在屏幕向下滑动并在手指抬起之后触发。
On4AxisSwipeRight
当手指在屏幕向右滑动并在手指抬起之后触发。
On4AxisSwipeLeft
当手指在屏幕向左滑动并在手指抬起之后触发。
8个带方向滑动
在8个方向(向上,向右,向下和向左以及对角线)检测滑动的方法。 为了决定滑动的方向,空间分为8个象限,每个象限的角度为40º和50º(对角象限度数相等)。
up Down Right Left 40
其他50
On9AxisSwipeUp
当手指在屏幕向上滑动并在手指抬起之后触发。
On9AxisSwipeDown
当手指在屏幕向下滑动并在手指抬起之后触发。
On9AxisSwipeRight
当手指在屏幕向右滑动并在手指抬起之后触发。
On9AxisSwipeLeft
当手指在屏幕向左滑动并在手指抬起之后触发。
On9AxisSwipeDiagonalRightUp
当手指在屏幕向右上滑动并在手指抬起之后触发。
[b]On9AxisSwipeDiagonalRightDown
当手指在屏幕右下滑动并在手指抬起之后触发。
On9AxisSwipeDiagonalLeftUp
当手指在屏幕左上滑动并在手指抬起之后触发。
On9AxisSwipeDiagonalLeftDown
当手指在屏幕左下滑动并在手指抬起之后触发。
快速切换
PS: 滑动切换界面用
像其他滑动方式一样,但是他们并不等待手指抬起。 相反,只要手势被识别为滑动,则轻触滑动被触发。
4个方向
On4AxisFlickSwipeUp
当手指在屏幕向上滑动并一旦有足够的信息知道手势是滑动即被触发。
On4AxisFlickSwipeDown
当手指在屏幕向下滑动并一旦有足够的信息知道手势是滑动即被触发。
On4AxisFlickSwipeRight
当手指在屏幕向右滑动并一旦有足够的信息知道手势是滑动即被触发。
On4AxisFlickSwipeLeft
当手指在屏幕向左滑动并一旦有足够的信息知道手势是滑动即被触发。
8个方向
On9AxisFlickSwipeUp
当手指在屏幕向上滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeDown
当手指在屏幕向下滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeRight
当手指在屏幕向右滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeLeft
当手指在屏幕向左滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeRightUp
当手指在屏幕向右上滑动并一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeRightDown
当手指在屏幕右下滑动并在一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeLeftUp
当手指在屏幕左上滑动并在一旦有足够的信息知道手势是滑动即被触发。
On9AxisFlickSwipeLeftDown
当手指在屏幕左下滑动并在一旦有足够的信息知道手势是滑动即被触发。
形状手势
当SimpleGesture检测到用手指绘制的特定形状时,触发手势。
OnCircle
检测手指在触摸屏上绘制圆形时。
OnZigZag
检测手指在触摸屏上绘制至少3个边缘的曲折
连续手势
只要手指正在移动,连续手势会持续触发。
例如,平移是一个连续的手势,因为它是在手指移动时被触发的
While1FingerPanning
当1手指平移检测到手指在屏幕周围移动时。
WhilePanning
检测到2个或更多个手指在屏幕周围一起移动时。
WhilePinching
检测到2个手指捏住屏幕(缩小)时。
WhileStretching
检测到2个手指伸展屏幕(放大)时。
WhileTwisting
当扭转检测到2个手指绕枢轴旋转时。
获取更加详细的信息
有关此手势的更多信息,只需在自定义函数中添加GestureInfoXX(根据行为添加不同)参数类型,
public class GestureInfoTap { public Vector2 position; public float duration; }
public void Awake() { SimpleGesture.OnTap(MyTapCallback); } public void MyTapCallback(GestureInfoTap gesture) { Debug.Log("Tap!"); Debug.Log("Position:" + gesture.position); Debug.Log("Duration:" + gesture.duration); }
相关文章推荐
- Unity手势插件FingerGestures使用遇到的问题
- Unity手势插件FingerGestures
- unity手势插件《FingerGestures 》使用入门
- HoloLens开发手记 - Unity之Gestures手势识别
- Unity Asset(2)手势插件FingerGesture
- unity手势插件《FingerGestures 》使用入门
- Unity鼠标点击手势识别(上、下、左、右滑动)
- (五)Hololens Unity 开发之 手势识别
- Kinect+Unity之手势识别初探
- unity手势插件《FingerGestures 》使用入门
- Unity手势操作FingerGestures插件
- Unity VR编辑器――如上帝般创建VR内容,Project Soli google用雷达识别手势体积相当于一张 Mini SD 内存卡
- Unity FingerGestures 手势插件教程
- Unity 加载手势插件后,Component菜单下没有相应项目的解决办法
- Htc Vive VR 手势识别插件教程 1.1 版本(附1.0版本教程PDF)
- 支持元素惯性拖放和多点触摸手势的js插件
- Android 触屏事件处理_手势识别 鼠标事件
- SoundWave:基于声波的手势识别 笔记本一秒变Kinect
- Unity插件 - MeshEditor(一) 3D线段作画 & 模型网格编辑器
- Android事件处理之多点触摸与手势识别