前段時間開發的手機游戲項目,需要一個功能,手指向左滑動時響應一個事件,手指向右滑動時響應另一個事件,網上看了看,有插件,不過沒時間研究,而且插件多了總覺得不舒服,所以自己臨時寫了一個,下面是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個方向的手指滑動。