using PrizeSystem; using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class PrizeView : MonoBehaviour { [SerializeField] private Image _image; [SerializeField] private TextMeshProUGUI _label; [SerializeField] private List map; [SerializeField] private Sprite defaultSprite; public void SetPrize(Prize prize) { _image.sprite = GetImage(prize.PrizeType); _label.text = GetText(prize); _label.rectTransform.sizeDelta = new Vector2(_label.preferredWidth, _label.rectTransform.sizeDelta.y); } public void Clear() { _image.sprite = null; _label.text = ""; } private string GetText(Prize prize) => RulesPrizePanel.GetPrizeText(prize); private Sprite GetImage(PrizeType prizeType) { foreach (var mapItem in map) if (mapItem.prizeType == prizeType) return mapItem.sprite; return defaultSprite; } [Serializable] public struct PrizeImageMap { public PrizeType prizeType; public Sprite sprite; } }