using TMPro; using UnityEngine; namespace D2D.UI { /// /// Big and juicy button. The opposite of flat button /// public class SpriteButton : DButton { [SerializeField] private RectTransform foreground; [SerializeField] private RectTransform background; [SerializeField] private TextMeshProUGUI text; private Vector3 releasePosition; private Vector3 pressPosition; private RectTransform textRect; private void OnEnable() { releasePosition = foreground.anchoredPosition; pressPosition = background.anchoredPosition; if (text != null) textRect = text.GetComponent(); PointerDown += SetPressed; PointerUp += SetReleased; } private void OnDisable() { PointerDown -= SetPressed; PointerUp -= SetReleased; } private void SetPressed() { foreground.anchoredPosition = pressPosition; background.gameObject.SetActive(false); if (text != null) textRect.anchoredPosition = pressPosition; } private void SetReleased() { foreground.anchoredPosition = releasePosition; background.gameObject.SetActive(true); if (text != null) textRect.anchoredPosition = releasePosition; } } }