using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class UIController : MonoBehaviour { [Header("Card UI")] [SerializeField] private Image[] cardImages; [Header("Card Sprites")] [Tooltip("Element 0 = Card 1, Element 1 = Card 2 ... Element 9 = Card 10")] [SerializeField] private Sprite[] cardSprites; [Header("Text UI")] [SerializeField] private TextMeshProUGUI scoreText; [SerializeField] private TextMeshProUGUI turnText; [Header("Action Buttons")] [SerializeField] private Button hitButton; [SerializeField] private Button standButton; [Header("Result UI")] [SerializeField] private GameObject resultPanel; [SerializeField] private TextMeshProUGUI resultTitleText; [SerializeField] private TextMeshProUGUI resultDescriptionText; public void ClearUI() { ClearCards(); SetScore(0); SetTurn("Player Turn"); HideResult(); SetActionButtons(true); } public void SetCardsByValues(List cardValues) { ClearCards(); for (int i = 0; i < cardValues.Count; i++) { SetCardByValue(i, cardValues[i]); } } public void SetCardByValue(int index, int cardValue) { if (cardImages == null || index < 0 || index >= cardImages.Length) { Debug.LogWarning($"Card Image index°¡ À߸øµÇ¾ú½À´Ï´Ù: {index}"); return; } if (cardImages[index] == null) { Debug.LogWarning($"Card Image {index}°¡ Inspector¿¡ ¿¬°áµÇÁö ¾Ê¾Ò½À´Ï´Ù."); return; } int spriteIndex = cardValue - 1; if (cardSprites == null || spriteIndex < 0 || spriteIndex >= cardSprites.Length) { Debug.LogWarning($"Card Sprite°¡ ¾ø½À´Ï´Ù. cardValue: {cardValue}"); return; } if (cardSprites[spriteIndex] == null) { Debug.LogWarning($"Card Sprite Element {spriteIndex}°¡ ºñ¾î ÀÖ½À´Ï´Ù."); return; } cardImages[index].sprite = cardSprites[spriteIndex]; cardImages[index].enabled = true; } public void ClearCards() { if (cardImages == null) return; foreach (Image cardImage in cardImages) { if (cardImage == null) continue; cardImage.sprite = null; cardImage.enabled = false; } } public void SetScore(int score) { if (scoreText != null) scoreText.text = $"Score : {score}"; } public void SetTurn(string message) { if (turnText != null) turnText.text = message; } public void SetActionButtons(bool isActive) { if (hitButton != null) hitButton.interactable = isActive; if (standButton != null) standButton.interactable = isActive; } public void ShowResult(string title, string description) { if (resultPanel != null) resultPanel.SetActive(true); if (resultTitleText != null) resultTitleText.text = title; if (resultDescriptionText != null) resultDescriptionText.text = description; SetActionButtons(false); } public void HideResult() { if (resultPanel != null) resultPanel.SetActive(false); } }