using UnityEngine.UI;
|
using UnityEngine;
|
using UnityEngine.EventSystems;
|
using System;
|
|
|
public class ButtonEx : Button
|
{
|
|
public event Action ableTimeChangeEvent;
|
|
public float interval;
|
public bool customPositiveSound = false;
|
public bool customNegativeSound = false;
|
public int positiveSound = 0;
|
public int negativeSound = 0;
|
|
float m_AbleTime = 0f;
|
public float ableTime {
|
get { return m_AbleTime; }
|
private set {
|
m_AbleTime = value;
|
if (ableTimeChangeEvent != null)
|
{
|
ableTimeChangeEvent();
|
}
|
}
|
}
|
|
public override void OnPointerClick(PointerEventData eventData)
|
{
|
if (Time.realtimeSinceStartup < ableTime)
|
{
|
PlayNegativeSound();
|
return;
|
}
|
|
base.OnPointerClick(eventData);
|
|
PlayPositiveSound();
|
ableTime = Time.realtimeSinceStartup + Mathf.Clamp(interval, 0, float.MaxValue);
|
}
|
|
protected override void Awake()
|
{
|
base.Awake();
|
}
|
|
private void PlayPositiveSound()
|
{
|
if (customPositiveSound)
|
{
|
SoundPlayer.Instance.PlayUIAudio(positiveSound);
|
}
|
else
|
{
|
SoundPlayer.Instance.PlayUIAudio(SoundPlayer.defaultClickPositiveAudio);
|
}
|
}
|
|
private void PlayNegativeSound()
|
{
|
if (customNegativeSound)
|
{
|
SoundPlayer.Instance.PlayUIAudio(negativeSound);
|
}
|
else
|
{
|
SoundPlayer.Instance.PlayUIAudio(SoundPlayer.defaultClickNegativeAudio);
|
}
|
}
|
|
}
|