Unity UGUI實現Button按鈕長按狀態的判斷


代碼:

using UnityEngine.EventSystems;
using System.Collections;
/// <summary>
/// 腳本位置:UGUI按鈕組件身上
/// 腳本功能:實現按鈕長按狀態的判斷
/// </summary>
 
// 繼承:按下,抬起和離開的三個接口
public class OnButtonPressed :MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerExitHandler
{
    // 延遲時間
    private float delay = 0.2f;
 
    // 按鈕是否是按下狀態
    private bool isDown = false;
 
    // 按鈕最后一次是被按住狀態時候的時間
    private float lastIsDownTime;
 
 
 
    void Update ()
    {
        // 如果按鈕是被按下狀態
        if (isDown) {
        // 當前時間 -  按鈕最后一次被按下的時間 > 延遲時間0.2秒
            if (Time.time - lastIsDownTime > delay) {
                // 觸發長按方法
                Debug.Log("長按");
                // 記錄按鈕最后一次被按下的時間
                lastIsDownTime = Time.time;
             }
        }
     }
 
    // 當按鈕被按下后系統自動調用此方法
    public void OnPointerDown (PointerEventData eventData)
    {
        isDown = true;
        lastIsDownTime = Time.time;
    }
 
    // 當按鈕抬起的時候自動調用此方法
    public void OnPointerUp (PointerEventData eventData)
    {
        isDown = false;
    }
 
    // 當鼠標從按鈕上離開的時候自動調用此方法
    public void OnPointerExit (PointerEventData eventData)
    {
        isDown = false;
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM