using System;
|
using UnityEngine;
|
using UnityEngine.EventSystems;
|
|
public class ButtonExtend : ButtonEx
|
{
|
public int intInfo = 0;
|
|
public Action<int> onceClick;
|
|
public override void OnPointerClick(PointerEventData eventData)
|
{
|
base.OnPointerClick(eventData);
|
if (IsDoubleClick())
|
{
|
return;
|
}
|
if (onceClick != null) onceClick(intInfo);
|
}
|
|
#region 双击
|
|
private float doubleClickInterval = 0.3f;
|
private bool m_IsOnDoubleClick = false;
|
private bool m_FreezeDbClick = false;
|
public Action doubleClick;
|
|
private bool IsDoubleClick()
|
{
|
if (doubleClick == null)
|
{
|
return false;
|
}
|
|
if (m_IsOnDoubleClick)
|
{
|
if (!m_FreezeDbClick)
|
{
|
doubleClick();
|
m_IsOnDoubleClick = false;
|
m_FreezeDbClick = true;
|
}
|
}
|
else
|
{
|
m_FreezeDbClick = false;
|
m_IsOnDoubleClick = true;
|
}
|
|
TimeMgr.Instance.Register(this, OnDoubleClickCallback, doubleClickInterval);
|
return true;
|
}
|
|
private void OnDoubleClickCallback(Component comp)
|
{
|
if (!m_FreezeDbClick)
|
{
|
if (onceClick != null) onceClick(intInfo);
|
}
|
|
m_FreezeDbClick = false;
|
m_IsOnDoubleClick = false;
|
}
|
#endregion
|
|
protected override void OnDisable()
|
{
|
if (Application.isPlaying)
|
{
|
TimeMgr.Instance.UnRegister(this);
|
}
|
}
|
}
|
|