美文网首页
UGUI里长按控件方法

UGUI里长按控件方法

作者: 默默的来过 | 来源:发表于2017-10-05 15:28 被阅读0次

    转载:http://blog.csdn.net/sinat_20559947/article/details/49886557


    using System.Collections;

    using System.Collections.Generic;

    using UnityEngine;

    using UnityEngine.EventSystems;

    public class NewBehaviourScript : MonoBehaviour {

    ////// 脚本位置:UGUI按钮组件身上

    /// 脚本功能:实现按钮长按状态的判断

    ///// 继承:按下,抬起和离开的三个接口  

    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;    }

     }

    相关文章

      网友评论

          本文标题:UGUI里长按控件方法

          本文链接:https://www.haomeiwen.com/subject/gwwrpttx.html