少年修仙传客户端代码仓库
client_Wu Xijin
2019-03-19 6ea752f7f7a4ed47de871f896f6892f14faed044
System/KnapSack/New/ButtonExtend.cs
@@ -1,62 +1,65 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class ButtonExtend : ButtonEx
{
    public int intInfo = 0;
    //public bool OnListen { get; set; }
    public Action<int> OnOneParaClick;
    public Action<int> onceClick;
    public override void OnPointerClick(PointerEventData eventData)
    {
        base.OnPointerClick(eventData);
        if (OnCheckDbClick())
        if (IsDoubleClick())
        {
            return;
        }
        if (OnOneParaClick != null) OnOneParaClick(intInfo);
        if (onceClick != null) onceClick(intInfo);
    }
    #region 双击
    private float dbInterval = 0.3f;
    private bool m_IsOnDb = false;
    private float doubleClickInterval = 0.3f;
    private bool m_IsOnDoubleClick = false;
    private bool m_FreezeDbClick = false;
    public Action m_OnDbClick;
    private bool OnCheckDbClick()
    public Action doubleClick;
    private bool IsDoubleClick()
    {
        if (m_OnDbClick == null)
        if (doubleClick == null)
        {
            return false;
        }
        if (m_IsOnDb)
        if (m_IsOnDoubleClick)
        {
            if (!m_FreezeDbClick)
            {
                m_OnDbClick();
                m_IsOnDb = false;
                doubleClick();
                m_IsOnDoubleClick = false;
                m_FreezeDbClick = true;
            }
        }
        else
        {
            m_FreezeDbClick = false;
            m_IsOnDb = true;
            m_IsOnDoubleClick = true;
        }
        TimeMgr.Instance.Register(this, OnDbCallback, dbInterval);
        TimeMgr.Instance.Register(this, OnDoubleClickCallback, doubleClickInterval);
        return true;
    }
    private void OnDbCallback(Component comp)
    private void OnDoubleClickCallback(Component comp)
    {
        if (!m_FreezeDbClick)
        {
            if (OnOneParaClick != null) OnOneParaClick(intInfo);
            if (onceClick != null) onceClick(intInfo);
        }
        m_FreezeDbClick = false;
        m_IsOnDb = false;
        m_IsOnDoubleClick = false;
    }
    #endregion