using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; /// /// 武将吞噬列表界面 /// public class HeroGiftRoleListWin : UIBase { [SerializeField] ScrollerController scroller; [SerializeField] GameObject emptyGo; protected override void OnPreOpen() { HeroUIManager.Instance.CacheHeroEatList(); scroller.OnRefreshCell += Scroller_OnRefreshCell; TeamManager.Instance.OnTeamChange += OnTeamChange; PackManager.Instance.RefreshItemLockEvent += RefreshItemLockEvent; HeroManager.Instance.onHeroChangeEvent += OnHeroChangeEvent; Display(); } protected override void OnPreClose() { scroller.OnRefreshCell -= Scroller_OnRefreshCell; TeamManager.Instance.OnTeamChange -= OnTeamChange; PackManager.Instance.RefreshItemLockEvent -= RefreshItemLockEvent; HeroManager.Instance.onHeroChangeEvent -= OnHeroChangeEvent; HeroUIManager.Instance.heroEatList.Clear(); } public void Display() { if (HeroUIManager.Instance.heroEatList.Count <= 0) { emptyGo.SetActive(true); scroller.SetActive(false); return; } emptyGo.SetActive(false); scroller.SetActive(true); scroller.Refresh(); for (int i = 0; i < HeroUIManager.Instance.heroEatList.Count; i++) { scroller.AddCell(ScrollerDataType.Header, i); } scroller.Restart(); } void Scroller_OnRefreshCell(ScrollerDataType type, CellView cellView) { HeroGiftRoleListCell heroGiftRoleListCell = cellView as HeroGiftRoleListCell; heroGiftRoleListCell.Display(cellView.index); } void OnTeamChange(TeamType type) { scroller.m_Scorller.RefreshActiveCellViews(); } void RefreshItemLockEvent(PackType type, string guid, bool lockState) { scroller.m_Scorller.RefreshActiveCellViews(); } void OnHeroChangeEvent(HeroInfo hero) { scroller.m_Scorller.RefreshActiveCellViews(); } }