using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class BuyItemWin : UIBase { [SerializeField] ItemCell itemCell; [SerializeField] Text nameText; [SerializeField] Text descText; //[SerializeField] ScrollerController scroller; [SerializeField] SliderPanel sliderPanel; [SerializeField] Button openButton; //[SerializeField] CellView _InitCell; string guid; int itemID; int itemCount; int useCnt; List items; protected override void InitComponent() { openButton.AddListener(() => { if (useCnt == 0) { CloseWindow(); return; } if (ItemLogicUtility.Instance.UseItem(guid, useCnt)) { CloseWindow(); } }); } protected override void Start() { //_InitCell.cellIdentifier = _InitCell.cellIdentifier + this.GetInstanceID().ToString(); } protected override void OnPreOpen() { itemID = ItemTipUtility.mainTipData.baseInfo.itemId; itemCount = ItemTipUtility.mainTipData.baseInfo.count; guid = ItemTipUtility.mainTipData.guid; itemCell.Init(new ItemCellModel(itemID, false, itemCount)); var itemConfig = ItemConfig.Get(itemID); nameText.text = itemConfig.ItemName; descText.text = itemConfig.Description; if (string.IsNullOrEmpty(guid)) { openButton.SetActive(false); sliderPanel.SetActive(false); } else { openButton.SetActive(true); sliderPanel.SetActive(true); } sliderPanel.Init((value) => { useCnt = value; }, itemCount); // scroller.OnRefreshCell += OnRefreshCell; items = BoxGetItemModel.Instance.GetBoxItems(itemID); CreateScroller(); } protected override void OnPreClose() { //scroller.OnRefreshCell -= OnRefreshCell; } void CreateScroller() { // scroller.Refresh(); for (int i = 0; i < items.Count; i++) { if (i % 4 == 0) { List tmpIDs = new List(); for (int j = 0; j < 4; j++) { int index = i + j; if (index >= items.Count) break; tmpIDs.Add(items[index]); } // scroller.AddCell(ScrollerDataType.Header, i); } } // scroller.Restart(); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as BoxItemLineCell; List tmpIDs = new List(); for (int j = 0; j < 4; j++) { int index = cell.index + j; if (index >= items.Count) break; tmpIDs.Add(items[index]); } _cell.Display(tmpIDs); } }