Unity3D判断手指左右滑动
前段时间开发的手机游戏项目,需要一个功能,手指向左滑动时响应一个事件,手指向右滑动时响应另一个事件,网上看了看,有插件,不过没时间研究,而且插件多了总觉得不舒服,所以自己临时写了一个,下面是C#版代码。
private Vector2 touchFirst = Vector2.zero;//手指开始按下的位置
private Vector2 touchSecond = Vector2.zero;//手指拖动的位置
void OnGUI(){
if(Event.current.type == EventType.MouseDown){//判断当前手指是按下事件
touchFirst = Event.current.mousePosition;//记录开始按下的位置
}
if(Event.current.type == EventType.MouseDown){//判断当前手指是拖动事件
touchSecond = Event.current.mousePosition;//记录拖动的位置
if(touchSecond.x < touchFirst.x){//拖动的位置比按下的位置的x小
//向左滑动
}
if(touchSecond.x > touchFirst.x){//拖动的位置比按下的位置的x大
//向右滑动
}
touchFirst = touchSecond;
}
}
注:因为Unity3D默认坐标是:
从左到右0-N。x坐标逐渐变大。
从下到上0-N。y坐标逐渐变大。
所以根据规律还可以判断出鼠标向上,向下,向左,向右,左上,左下,右上,右下8个方向的手指滑动。