using System.Collections.Generic; using System.Linq; using UnityEngine; public class SimpleAttributeWin : UIBase { [SerializeField] Transform noAttr; [SerializeField] TextEx title; [SerializeField] ScrollerController scroller; Dictionary simpleAttrDict; List simpleAttrSortList; string simpleAttrTitleName; protected override void OnPreOpen() { simpleAttrDict = AttributeManager.Instance.simpleAttrDict; simpleAttrSortList = AttributeManager.Instance.simpleAttrSortList; simpleAttrTitleName = AttributeManager.Instance.simpleAttrTitleName; scroller.OnRefreshCell += OnRefreshCell; title.text = simpleAttrTitleName; CreateScroller(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; } private void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell.GetComponent(); _cell?.Display(cell.index, simpleAttrSortList, simpleAttrDict); } private void CreateScroller() { scroller.Refresh(); noAttr.SetActive(simpleAttrSortList.IsNullOrEmpty()); if (simpleAttrSortList != null) { int rowCount = (int)Mathf.Ceil((float)simpleAttrSortList.Count / AttributeManager.Instance.SimpleAttributeMaxRowCnt); for (int i = 0; i < rowCount; i++) { scroller.AddCell(ScrollerDataType.Header, i); } } scroller.Restart(); } }