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

Unity 手势识别插件

2017-08-12 23:30 525 查看
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

当手指在屏幕向右上滑动并在手指抬起之后触发。

[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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: