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个方向的手指滑动。

posted on 2016-02-23 15:59  陈二狗  阅读(5806)  评论(0编辑  收藏  举报

导航