【UGUI】Unity的UGUI实现Button按钮长按状态的判断

  1. 原文:http://blog.csdn.net/sinat_20559947/article/details/49886557

  2. using UnityEngine;  
  3. using UnityEngine.EventSystems;  
  4. using System.Collections;  
  5. ///   
  6. /// 脚本位置:UGUI按钮组件身上  
  7. /// 脚本功能:实现按钮长按状态的判断  
  8. /// 创建时间:2015年11月17日  
  9. ///   
  10.   
  11. // 继承:按下,抬起和离开的三个接口  
  12. public class OnButtonPressed :MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerExitHandler  
  13. {  
  14.     // 延迟时间  
  15.     private float delay = 0.2f;  
  16.   
  17.     // 按钮是否是按下状态  
  18.     private bool isDown = false;  
  19.   
  20.     // 按钮最后一次是被按住状态时候的时间  
  21.     private float lastIsDownTime;  
  22.   
  23.   
  24.   
  25.     void Update ()  
  26.     {  
  27.         // 如果按钮是被按下状态  
  28.         if (isDown) {  
  29.         // 当前时间 -  按钮最后一次被按下的时间 > 延迟时间0.2秒  
  30.             if (Time.time - lastIsDownTime > delay) {  
  31.                 // 触发长按方法  
  32.                 Debug.Log("长按");  
  33.                 // 记录按钮最后一次被按下的时间  
  34.                 lastIsDownTime = Time.time;  
  35.   
  36.             }  
  37.         }  
  38.   
  39.     }  
  40.   
  41.     // 当按钮被按下后系统自动调用此方法  
  42.     public void OnPointerDown (PointerEventData eventData)  
  43.     {  
  44.         isDown = true;  
  45.         lastIsDownTime = Time.time;  
  46.     }  
  47.   
  48.     // 当按钮抬起的时候自动调用此方法  
  49.     public void OnPointerUp (PointerEventData eventData)  
  50.     {  
  51.         isDown = false;  
  52.     }  
  53.   
  54.     // 当鼠标从按钮上离开的时候自动调用此方法  
  55.     public void OnPointerExit (PointerEventData eventData)  
  56.     {  
  57.         isDown = false;  
  58.     }  
  59. }  

你可能感兴趣的:(Unity3d_UGUI)