using System; using System.Collections.Generic; using System.Linq; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Superlazy.UI { [RequireComponent(typeof(Button))] public class SLUIButton : SLUIComponent, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, ISelectHandler, IDeselectHandler { public static Material grayMaterial; public static Material grayTextMaterial; public static DateTime globalClickedTime = DateTime.MinValue; public static PointerEventData currentPoint; public string command; public bool useGrayScale; public bool focus; public string focusBind; public bool selectIsHover; public bool fastClick; public SLValueComparison comparison; public string clickSound = "SoundEffect/SE_UI_click"; [NonSerialized] public Button button; private Graphic[] childImages; private Color[] childImageColors; // TODO: SLUIColorSelect 대비해야함 private TextMeshProUGUI[] childTexts; private Color[] childTextColors; private DateTime clickedTime = DateTime.MinValue; private enum ButtonState { Normal, Highlighted, Pressed, Disabled } private ButtonState currentButtonState; private bool isPointerInside; private bool isPointerDown; protected override void Validate() { button = GetComponent