using TMPro; using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(Button))] public class RoomButtonUI : MonoBehaviour { [Header("Data")] [SerializeField] private RoomData roomData; [Header("References")] [SerializeField] private Button button; [SerializeField] private Image backgroundImage; [SerializeField] private Image roomIconImage; [SerializeField] private TMP_Text roomNameText; [SerializeField] private GameObject lockIcon; [SerializeField] private GameObject clearIcon; [Header("Sprites")] [SerializeField] private Sprite normalSprite; [SerializeField] private Sprite selectedSprite; [SerializeField] private Sprite lockedSprite; [SerializeField] private Sprite clearedSprite; [Header("Colors When Sprite Is Missing")] [SerializeField] private Color normalColor = new Color(0.05f, 0.55f, 0.65f, 0.85f); [SerializeField] private Color selectedColor = new Color(0.75f, 1f, 1f, 0.95f); [SerializeField] private Color lockedColor = new Color(0.15f, 0.18f, 0.22f, 0.75f); [SerializeField] private Color clearedColor = new Color(0.2f, 0.8f, 0.65f, 0.9f); private RoomSelectManager manager; private RoomState currentState = RoomState.Unlocked; private bool isSelected; public RoomData RoomData => roomData; public RoomState CurrentState => currentState; private void Reset() { button = GetComponent