之前发的博客在移动端都是有问题的
无奈之下自己写了一套
#region 模块信息
// **********************************************************************
// Copyright (C) 2018 Blazors
// Please contact me if you have any questions
// File Name: MButton.cs
// Author: 子龙
//QQ / Whacth 991959229 / taylorgege
// **********************************************************************
#endregion
using UnityEngine.UI;
using UnityEngine;
using UnityEngine.EventSystems;
public class MButton : Button
{
private const float M_Time = 2;
private float timmer = 0;
private bool isDown = false;
protected override void Awake()
{
onClick.AddListener(OnClick);
}
private void Update()
{
//if (isDown)
//{
// timmer += Time.deltaTime;
// if (timmer >= M_Time)
// {
// timmer = 0;
// interactable = true;
// isDown = false;
// }
//}// 如果按钮是被按下状态
}
public void OnClick()
{
//interactable = false;
//isDown = true;
}
// 延迟时间
private float delay = 0.2f;
private bool IsUp = false;
private float lastIsDownTime;
protected MButton()
{
m_onDoubleClick = new ButtonClickedEvent();
}
private ButtonClickedEvent m_onDoubleClick;
public ButtonClickedEvent OnDoubleClick
{
get { return m_onDoubleClick; }
set { m_onDoubleClick = value; }
}
public override void OnPointerDown(PointerEventData eventData)
{
base.OnPointerDown(eventData);
if (Time.time - lastIsDownTime <= delay)
{
m_onDoubleClick.Invoke();
}
}
public override void OnPointerUp(PointerEventData eventData)
{
base.OnPointerUp(eventData);
lastIsDownTime = Time.time;
}
}