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 OnHoverEnter() { if (_context == null) { return; } GameEntry.Event.Fire(this, SelectRoleHoverEventArgs.Create(_context.RoleId)); } public void OnConfirmRoleClick() { GameEntry.Event.Fire(this, SelectRoleConfirmEventArgs.Create()); } } }