//按下事件: OnFingerDown就是按下事件監(jiān)聽的方法,這個(gè)名子可以由你來自定義。方法只能在本類中監(jiān)聽。下面所有的事件都一樣!?。?/div>
FingerGestures.OnFingerDown += OnFingerDown;
//抬起事件
FingerGestures.OnFingerUp += OnFingerUp;
//開始拖動(dòng)事件
FingerGestures.OnFingerDragBegin += OnFingerDragBegin;
//拖動(dòng)中事件...
FingerGestures.OnFingerDragMove += OnFingerDragMove;
//拖動(dòng)結(jié)束事件
FingerGestures.OnFingerDragEnd += OnFingerDragEnd;
//上、下、左、右、四個(gè)方向的手勢滑動(dòng)
FingerGestures.OnFingerSwipe += OnFingerSwipe;
//連擊事件 連續(xù)點(diǎn)擊事件
FingerGestures.OnFingerTap += OnFingerTap;
//手指觸摸屏幕中事件調(diào)用一下三個(gè)方法
FingerGestures.OnFingerStationaryBegin += OnFingerStationaryBegin;
FingerGestures.OnFingerStationary += OnFingerStationary;
FingerGestures.OnFingerStationaryEnd += OnFingerStationaryEnd;
//長按事件
FingerGestures.OnFingerLongPress += OnFingerLongPress;
}
void OnDisable()
{
//關(guān)閉時(shí)調(diào)用,這里銷毀手勢操作的事件
//和上面一樣
FingerGestures.OnFingerDown -= OnFingerDown;
FingerGestures.OnFingerUp -= OnFingerUp;
FingerGestures.OnFingerDragBegin -= OnFingerDragBegin;
FingerGestures.OnFingerDragMove -= OnFingerDragMove;
FingerGestures.OnFingerDragEnd -= OnFingerDragEnd;
FingerGestures.OnFingerSwipe -= OnFingerSwipe;
FingerGestures.OnFingerTap -= OnFingerTap;
FingerGestures.OnFingerStationaryBegin -= OnFingerStationaryBegin;
FingerGestures.OnFingerStationary -= OnFingerStationary;
FingerGestures.OnFingerStationaryEnd -= OnFingerStationaryEnd;
FingerGestures.OnFingerLongPress -= OnFingerLongPress;
}
//按下時(shí)調(diào)用
void OnFingerDown( int fingerIndex, Vector2 fingerPos )
{
//int fingerIndex 是手指的ID 第一按下的手指就是 0 第二個(gè)按下的手指就是1。。。一次類推。
//Vector2 fingerPos 手指按下屏幕中的2D坐標(biāo)
//將2D坐標(biāo)轉(zhuǎn)換成3D坐標(biāo)
transform.position = GetWorldPos( fingerPos );
Debug.Log(" OnFingerDown =" +fingerPos);
}
//抬起時(shí)調(diào)用
void OnFingerUp( int fingerIndex, Vector2 fingerPos, float timeHeldDown )
{
Debug.Log(" OnFingerUp =" +fingerPos);
}
//開始滑動(dòng)
void OnFingerDragBegin( int fingerIndex, Vector2 fingerPos, Vector2 startPos )
{
Debug.Log("OnFingerDragBegin fingerIndex =" + fingerIndex + " fingerPos ="+fingerPos +"startPos =" +startPos);
}
//滑動(dòng)結(jié)束
void OnFingerDragEnd( int fingerIndex, Vector2 fingerPos )
{
Debug.Log("OnFingerDragEnd fingerIndex =" + fingerIndex + " fingerPos ="+fingerPos);
}
//滑動(dòng)中
void OnFingerDragMove( int fingerIndex, Vector2 fingerPos, Vector2 delta )
{
transform.position = GetWorldPos( fingerPos );
Debug.Log(" OnFingerDragMove =" +fingerPos);
}
//上下左右四方方向滑動(dòng)手勢操作
void OnFingerSwipe( int fingerIndex, Vector2 startPos, FingerGestures.SwipeDirection direction, float velocity )
{
//結(jié)果是 Up Down Left Right 四個(gè)方向
Debug.Log("OnFingerSwipe " + direction + " with finger " + fingerIndex);
}
//連續(xù)按下事件, tapCount就是當(dāng)前連續(xù)按下幾次
void OnFingerTap( int fingerIndex, Vector2 fingerPos, int tapCount )
{
Debug.Log("OnFingerTap " + tapCount + " times with finger " + fingerIndex);
}
//按下事件開始后調(diào)用,包括 開始 結(jié)束 持續(xù)中狀態(tài)只到下次事件開始!
//OnFingerStationary 事件和 OnFingerDragMove 有一個(gè)區(qū)別。
//OnFingerStationary 是手指觸摸在屏幕中的事件,而OnFingerDragMove是先觸摸一下然后滑動(dòng)的事件。
//如果你需要時(shí)時(shí)捕獲手指觸摸屏幕中的事件時(shí) 用OnFingerStationary 即可
void OnFingerStationaryBegin( int fingerIndex, Vector2 fingerPos )
{
Debug.Log("OnFingerStationaryBegin " + fingerPos + " times with finger " + fingerIndex);
}
void OnFingerStationary( int fingerIndex, Vector2 fingerPos, float elapsedTime )
{
Debug.Log("OnFingerStationary " + fingerPos + " times with finger " + fingerIndex);
}
void OnFingerStationaryEnd( int fingerIndex, Vector2 fingerPos, float elapsedTime )
{
Debug.Log("OnFingerStationaryEnd " + fingerPos + " times with finger " + fingerIndex);
}
//長按事件
void OnFingerLongPress( int fingerIndex, Vector2 fingerPos )
{
Debug.Log("OnFingerLongPress " + fingerPos );
}
//把Unity屏幕坐標(biāo)換算成3D坐標(biāo)
Vector3 GetWorldPos( Vector2 screenPos )
{
Camera mainCamera = Camera.main;
return mainCamera.ScreenToWorldPoint( new Vector3( screenPos.x, screenPos.y, Mathf.Abs( transform.position.z - mainCamera.transform.position.z ) ) );
}
}