using UnityEngine; public class GuildAtkDefBatShopWin : UIBase { [SerializeField] ScrollerController scroller; protected override void OnPreOpen() { StoreModel.Instance.selectStoreFuncType = (StoreFunc)GuildAtkDefBatManager.Instance.shopType; scroller.OnRefreshCell += OnRefreshCell; StoreModel.Instance.RefreshShopEvent += Display; StoreModel.Instance.RefreshBuyShopLimitEvent += Display; Display(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; StoreModel.Instance.RefreshShopEvent -= Display; StoreModel.Instance.RefreshBuyShopLimitEvent -= Display; } void Display() { CreateScroller(); } void CreateScroller() { if (!StoreModel.Instance.storeTypeDict.ContainsKey(GuildAtkDefBatManager.Instance.shopType)) return; scroller.Refresh(); var list = StoreModel.Instance.storeTypeDict[GuildAtkDefBatManager.Instance.shopType]; for (int i = 0; i < list.Count; i++) { if (i % 3 == 0) { scroller.AddCell(ScrollerDataType.Header, i); } } scroller.Restart(); scroller.lockType = EnhanceLockType.KeepVertical; } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as StoreLineCell; _cell.Display(cell.index); } }