using Cysharp.Threading.Tasks; using SepCore.Event; using UnityEngine; using UnityEngine.UI; namespace SepCore.UI { public class RoleItem : MonoBehaviour { [SerializeField] private Image _roleImage = null; private RoleItemContext _context = null; public async UniTaskVoid OnInit(RoleItemContext context) { _context = context; if (_context == null || string.IsNullOrEmpty(_context.IconName)) { return; } _roleImage.sprite = await GameEntry.SpriteCache.GetSprite(_context.IconName); } public void OnReset() { _context = null; } public void UpdateShowRole() { int roleId = _context?.RoleId ?? -1; GameEntry.Event.Fire(this, SelectRoleHoverEventArgs.Create(roleId)); } public void OnConfirmRoleClick() { GameEntry.Event.Fire(this, SelectRoleConfirmEventArgs.Create()); } } }