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

using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections;
/// <summary>
/// 腳本位置:UGUI按鈕組件身上
/// 腳本功能:實現按鈕長按狀態的判斷
/// 建立時間:2015年11月17日
/// </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;
	}
}