using Cysharp.Threading.Tasks; using SepCore.AsyncTask; using TMPro; using UnityEngine; using UnityEngine.UI; using UnityGameFramework.Runtime; namespace SepCore.UI { public class LevelUpRewardItem : MonoBehaviour { [SerializeField] private IconArea _iconArea; [SerializeField] private TMP_Text _titleText; [SerializeField] private TMP_Text _typeText; [SerializeField] private TMP_Text _descriptionText; private LevelUpRewardItemContext _context; public void Init(LevelUpRewardItemContext context) { if (context == null) { Log.Error("LevelUpPropContext context is invalid."); return; } _context = context; _titleText.text = context.Title; _descriptionText.text = context.Description; _iconArea.OnInit(context.Icon, context.Rarity); LoadIcon(_context.IconAssetName).Forget(); } private async UniTaskVoid LoadIcon(string iconAssetName) { if (string.IsNullOrEmpty(iconAssetName)) return; var sprite = await SpriteLoader.LoadSpriteByKeyAsync(iconAssetName); _iconArea.SetIcon(sprite); } } }