1. 程式人生 > >[Unity3D]判斷滑鼠擡起和新增相應事件

[Unity3D]判斷滑鼠擡起和新增相應事件

這裡我說自己的方法,拋磚引玉
在遊戲中,常常要寫滑鼠按下擡起的判斷,這裡我用三個變數來判斷。
這裡寫圖片描述
當滑鼠第一次按下時,firstMouseDown和mouseDown都變為true,而firstMouseUp為false。緊接著如果滑鼠擡起,那麼mouseDown變為false,而firstMouseUp變為ture,我們只要觀察firstMouseUp這個變數,就知道滑鼠有沒有擡起。

這裡在最外面要設定firstMouseDown 為false,用來清空一下之間操作存下來的資訊。onDrawLine()方法是一個自己寫的方法

    void Update()
    {
        if
(Input.GetMouseButtonDown(0)) { firstMouseDown = true; mouseDown = true; firstMouseUp = false; } if (Input.GetMouseButtonUp(0)) { mouseDown = false; firstMouseUp = true; } onDrawLine(); firstMouseDown = false
; }

下面是操作

 private void onDrawLine()
    {
        if (firstMouseDown)
        {
            //這裡清空之前的操作
        }

        if (mouseDown)
        {
            //這裡寫滑鼠拖動時候的操作

        }
        else
        {
            if (firstMouseUp)
            {
                //這裡寫滑鼠擡起的操作,同時要設定firstMouseUp和isCancelCardShow
firstMouseUp = false; isCancelCardShow = false; } } }

在Unity中測試一下,發現拖動和擡起時沒有問題的
這裡寫圖片描述
以上是我的程式碼
另外那天看到有人問,怎麼判斷在手機上的按下和拖動,我想了一下
第一次按下時,記錄按下的位置和時間,擡起時,記錄擡起的位置和時間,然後位置和時間相減
1.時間和位置比較小的是按下
2.時間比較長視為拖動(因為有可能是劃了一圈回到了原點,又或者一直按著不動,但是這兩個應該都會觸發拖動事件)