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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM