Files
2025-06-07 15:09:22 +08:00

55 lines
1.2 KiB
C#

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class DoubleCheckButton : MonoBehaviour, IPointerExitHandler
{
private Button button;
private bool isConfirmState = false;
public UnityAction onConfirm;
public Color ComfirmColor;
public Color DefaultColor;
void Awake()
{
button = GetComponent<Button>();
button.onClick.AddListener(OnButtonClick);
}
private void OnButtonClick()
{
if (!isConfirmState)
{
// 第一次点击,进入确认状态(变红)
isConfirmState = true;
button.image.color = ComfirmColor;
}
else
{
// 第二次点击,执行命令
ExecuteCommand();
ResetButtonState();
}
}
public void OnPointerExit(PointerEventData eventData)
{
// 鼠标移出时,重置按钮状态
ResetButtonState();
}
private void ExecuteCommand()
{
onConfirm?.Invoke();
}
private void ResetButtonState()
{
isConfirmState = false;
button.image.color = DefaultColor;
}
}