Unity3d FingerGestures 使用 例子

你的財神爺發表於2019-01-10

1.外掛百度網盤地址:連結:https://pan.baidu.com/s/14PRkpAf3OLXjz81QT0hPPA 密碼:k8iz] 
2.本次實驗採用的是Unity5.4.5的版本。外掛版本為3.1 
3.小例子分析

A:手指點選事件,劃過事件,離開事件,滑鼠點選保持不動事件。 
A3.1.找到如圖1所示預製體位置將其拖入場景,該預製體上面包含的指令碼FingerGestures.cs包含了一些基本的初始化 
 
A3.2在空場景中建立一個空物體,命名為Finger,點選Finger物體之後,點選工具欄component>>FingerGesture>>FingerEvent>>向物體Finger新增方法,我們首先新增的為FingerDown,點選按下事件。如圖2所示 
 
A3.3新增之後如下圖2所示 

新建一個指令碼FingerTest,並建立一個方法,方法名要與FingerDownDetector.cs指令碼中紅色方框勾選的MessageName一致,方法名與寫如下指令碼 


執行場景,Pc端點選滑鼠可看到,Down時刻列印輸出,方法被事件呼叫 


B.雙擊事件,單擊事件,拖拽事件,長按事件等 
B3.1新建一個空場景,拖入FingerGesture預製體,新建一個空物體,在工具欄Component>>FingerGesture>>給其添事件監聽指令碼,如圖所示新增拖拽事件等 

值得注意的是,雙擊事件,需要新增TapRec,需要修改tap次數,和事件廣播方法,如下圖所示 


,在Finger空物體上新增一個指令碼如下所示,

public class FingerEvent : MonoBehaviour {

    public static FingerEvent Instance;
    private void Awake()
    {
        Instance = this;
    }
    /// <summary>
    /// 點選事件
    /// </summary>
    /// <param name="gesture"></param>
    void OnTap(TapGesture gesture)
    {
        Debug.Log("點選-----");
    }
    void OnSwipe(SwipeGesture gesture)
    {
        Debug.Log("滑動事件--");
    }
    /// <summary>
    /// 雙擊事件
    /// </summary>
    /// <param name="gesture"></param>
    void OnDoubleTap(TapGesture gesture)
    {
        Debug.Log("雙擊事件--");
    }
    void OnLongPress(LongPressGesture gesture)
    {
        Debug.Log("長按事件--");
    }
    /// <summary>
    /// 拖拽事件方法
    /// </summary>
    /// <param name="gesture"></param>
    void OnDrag(DragGesture gesture)
    {
       if(gesture .Phase ==ContinuousGesturePhase.Started )
        {
            Debug.Log("拖拽開始");
        }
        else if(gesture .Phase ==ContinuousGesturePhase.Ended)
        {
            Debug.Log("拖拽結束");
        }
        else if(gesture.Phase==ContinuousGesturePhase.Updated )
        {
            Debug.Log("拖拽中");
        }

    }
}
--------------------- 
作者:暱稱好難寫 
來源:CSDN 
原文:https://blog.csdn.net/qq_36274965/article/details/79495483 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

相關文章