美文网首页
Unity_UGUI,按下,抬起,离开

Unity_UGUI,按下,抬起,离开

作者: 萧非子 | 来源:发表于2017-08-13 01:16 被阅读20次

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

}

相关文章

网友评论

      本文标题:Unity_UGUI,按下,抬起,离开

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