Unity 手势识别插件

来源:互联网 发布:贴吧娘贴吧君分手知乎 编辑:程序博客网 时间:2024/06/15 20:11

PS:根据需要先看是否禁止多点触控 API :Input.multyTouchEnabled;
当出现有点击行为但是有不能让点击下方的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
当手指在屏幕向右上滑动并在手指抬起之后触发。
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);}
原创粉丝点击